Rom*_*cea 6 django django-forms
我有一个带有一些独特字段的模型,我正在为它编写一个表单.我找到了一些[validate_unique][1]方法的引用,当你调用它时应该检查字段的唯一性,但我的表单.is_valid()总是返回True.
我的测试用例:
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( ) )
Run Code Online (Sandbox Code Playgroud)
和我的形式:
class ServerForm( forms.ModelForm ):
class Meta:
model = Server
fields = ('name', 'host')
def clean( self ):
self.validate_unique()
return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)
服务器型号:
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 )
Run Code Online (Sandbox Code Playgroud)
Yuj*_*ita 11
validate_unique是一种Model方法.
运行超类clean方法应该考虑给出的模型唯一性检查ModelForm.
class MyModelForm(forms.ModelForm):
def clean(self):
cleaned_data = super(MyModelForm, self).clean()
# additional cleaning here
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
django文档中有一个警告,特别是关于覆盖清理ModelForms,它会自动执行几个模型验证步骤.
| 归档时间: |
|
| 查看次数: |
6608 次 |
| 最近记录: |