gpt4 book ai didi

表单中的Django唯一模型字段验证

转载 作者:行者123 更新时间:2023-12-04 13:31:44 24 4
gpt4 key购买 nike

我有一个带有几个唯一字段的模型,并且正在为此编写一个表单。我找到了一些对[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( ) )

和我的表格:
class ServerForm( forms.ModelForm ):
class Meta:
model = Server
fields = ('name', 'host')

def clean( self ):
self.validate_unique()
return self.cleaned_data

服务器型号:
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 )

最佳答案

validate_uniqueModel方法。

在给定clean的情况下,运行父类(super class)ModelForm方法应注意模型的唯一性检查。

class MyModelForm(forms.ModelForm):    
def clean(self):
cleaned_data = super(MyModelForm, self).clean()
# additional cleaning here
return cleaned_data

django文档上有一个 warning,专门用于覆盖 ModelForm上的clean,它会自动执行几个模型验证步骤。

关于表单中的Django唯一模型字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31150929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com