Ich verwende ModelForm, um mein Formular zu erstellen. Alles funktioniert gut außer 1 Sache - Validierung des einzigartigen Feldes. Code:Problem mit der Validierung von ModelForm
class Article(models.Model):
...
title = models.CharField(max_length=255, unique=True, error_messages={'max_length' : 'max translation',
'unique' : 'unique translation',
'required' : 'req translation',})
...
class ArticleForm(ModelForm):
...
title = forms.CharField(max_length=255, min_length=3, error_messages={'required' : 'req translation',
'min_length' : 'min translation',
'max_length' : 'max translation',
'unique' : 'unique translation',})
Aber wenn ich meine Form mit nicht eindeutigem Titel speichere ich nicht meine Gewohnheit übersetzt Fehler erhalten, aber ich Standard-Fehler. Wie behebe ich das, dass mein eindeutiger Feldfehler angezeigt wird?
EDIT: Ich fand, ich denke, sehr bequeme Möglichkeit, das zu tun. jemand wird es vielleicht verwenden :)
def unique_error_message(self, model_class, unique_check):
if 'put_field_name_here' in unique_check and len(unique_check) == 1:
return 'Here goes a custom unique error'
return super(Article, self).unique_error_message(model_class, unique_check)
Wo haben Sie in der Dokumentation gesehen, dass 'unique' ein gültiger Schlüssel für das' error_messages' Wörterbuch ist? –
habe ich nicht. Ich dachte, tue es. – robos85