ich eine Unterkategorie Form wie dieses:Ignorieren Validierer bearbeiten Ansicht
class SubcategoryForm(forms.Form):
name = forms.CharField(
widget=forms.TextInput(attrs={'class' : 'form-control'}),
max_length=100,
label='Subcategory',
validators=[unic_subcategory]
)
category = forms.ModelChoiceField(
widget=forms.Select(attrs={'class' : 'form-control'}),
queryset = Category.objects.filter(delete=False),
label='Category'
)
Der Validator Funktion sieht wie folgt aus:
def unic_subcategory(value):
exist = Subcategory.objects.filter(nome=value)
if exist:
raise ValidationError(u"Duplicated subcategory '%s' are not allowed" % value)
Dies funktioniert, wenn der Benutzer eine neue Unterkategorie und eine Unterkategorie schafft mit Derselbe Name existiert bereits. Mein Problem tritt auf, wenn der Benutzer versucht, das Feld category
und nicht das Feld name
zu bearbeiten. Das Formular löst einen Fehler aus, da das Feld name
bereits vorhanden ist.
Wie kann ich dies vermeiden, wenn der Benutzer das Feld category
bearbeitet?
Diese Arbeit mit dem bearbeiten, aber als ich versuchte, mit einer neuen Untergruppe, die bereits existiert, gibt mir die Debug-Fehler von django/SQL, aber nicht den Formfehler . –
@ M.Gar Ich habe meinen Code korrigiert. Sie haben vermutlich einen Tippfehler im queryset-Filter in Ihrem Code ('nome' statt' name'), also habe ich ihn auch in 'name' geändert. –
Danke, aber jetzt gibt mir diesen Fehler ''SubcategoryForm' Objekt hat kein Attribut 'instance'' –