Django einzigartige Modell-Felder-Validierung in form
Habe ich ein Modell mit ein paar spezielle Felder und ich Schreibe ein Formular für Sie. Ich fand einen Hinweis auf die [validate_unique][1]
Methode, die überprüfen sollten, für die Eindeutigkeit, die auf den Feldern, wenn Sie es nennen, aber meine form .is_valid()
gibt immer True
.
Mein testcase:
class ServerFormTest( TestCase ):
def setUp( self ):
self.server = Server.objects.create( host = "127.0.0.1", name = "localhost" )
def test_unique_name(self):
form = ServerForm({
'name': 'localhost',
'host': '127.0.0.1'
})
self.assertFalse( form.is_valid( ) )
und meine form:
class ServerForm( forms.ModelForm ):
class Meta:
model = Server
fields = ('name', 'host')
def clean( self ):
self.validate_unique()
return self.cleaned_data
server-Modell:
class Server( models.Model ):
host = models.GenericIPAddressField( blank = False, null = False, unique = True )
name = models.CharField( blank = False, null = False, unique = True, max_length = 55 )
- Können Sie Ihre
Server
- Modell als auch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
validate_unique ist ein
Model
Methode.Läuft der Superklasse
clean
Methode sollte sich darum kümmern, Modell Einzigartigkeit Prüfungen gegebenModelForm
.Es ist ein Warnung auf die django-docs-speziell über das überschreiben sauber auf
ModelForm
s, die automatisch mehrere Modell-Validierung Schritte.Ich lösen es, indem Sie
validate_unique()
zusave()
Es funktioniert für mich. Ich weiß nicht, über Sie.