Qual è l'approccio migliore per la gestione dell'eliminazione di un oggetto con qualche convalida prima che l'oggetto venga eliminato? Ad esempio, nella mia configurazione sono disponibili due modelli: Game
e Team
(che sono ovviamente correlati). Gli utenti dovrebbero essere in grado di eliminare solo squadre che NON sono legate a nessun gioco.Convalida tramite DeleteView prima dell'eliminazione dell'istanza
Ho creato un modulo (senza campi) per l'eliminazione di una squadra ...
class TeamDeleteForm(ModelForm):
class Meta:
model = Team
fields = []
def clean(self):
# Check to see if this team is tied to any existing games
if self.instance.gameteams_set.exists():
raise ValidationError("This team is tied to 1 or more games")
return super().clean()
ma poi ho capito che la base di classe di visualizzazione DeleteView non ha alcun tipo di metodo form_valid(). Dovrei estendere il FormView generico invece di DeleteView o c'è un approccio migliore che mi manca?
Hai dato un'occhiata alla mia risposta qui sotto? –
@SimonCharette l'ho fatto, grazie. Tuttavia, penso di avere una soluzione migliore utilizzando FormView. Ancora non è l'ideale, e sto aspettando di vedere se qualcun altro ha intenzione di rispondere prima di pubblicare la mia soluzione. – Ben