Ho un modello Django simile a questo.Django's ModelForm validazione unique_together
class Solution(models.Model):
'''
Represents a solution to a specific problem.
'''
name = models.CharField(max_length=50)
problem = models.ForeignKey(Problem)
description = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ("name", "problem")
Io uso una forma per l'aggiunta di modelli che assomiglia a questo:
class SolutionForm(forms.ModelForm):
class Meta:
model = Solution
exclude = ['problem']
mio problema è che il SolutionForm
non convalida Solution
s' unique_together
vincolo e, quindi, restituisce un IntegrityError
quando si cerca di salva il modulo. So che potrei usare validate_unique
per verificare manualmente questo problema, ma mi chiedevo se c'è un modo per capirlo nella convalida del modulo e restituire automaticamente un errore del modulo.
Grazie.
Sei sicuro che si imposta tutto correttamente, perché la documentazione relativa modello forme Syas chiaramente: "Per impostazione predefinita, il metodo clean() convalida l'unicità dei campi contrassegnati come univoci, unique_together o unique_for_date | month | year sul modello." Http://docs.djangoproject.com/en/1.1/topics/forms/modelforms/# overriding-the-clean-method –
puoi provarlo senza la parte di esclusione? seleziona manualmente il problema che presumo sia determinato dalla tua vista. –