是否存在create
函数未根据模型规范进行验证的情况?这是我的模型:
class Contact(models.Model):
id = models.AutoField(primary_key=True)
firstname = models.CharField(max_length=100, null=False, blank=False)
lastname = models.CharField(max_length=100, null=False, blank=False)
email = models.EmailField(max_length=150, blank=False, null=False)
active = models.BooleanField(default=True)
我在
view
中使用了此功能:new_contact = Contact.objects.create(firstname=a,
lastname=b,
email=c)
# where a, b, & c are empty strings in request.POST, which shouldn't validate
对
create
的调用顺利进行。但是,事实并非如此。该模型根据需要指定这些字段。实际上,如果我进入管理面板并查看该对象,我将无法保存(不进行任何更改),因为它对我大吼大叫必填字段。不验证
create
是正常行为吗? 如何强制其进行验证?
最佳答案
您正在混合表格和模型。
Field.blank
因此,是的,该模型的正常行为是不打扰空白的验证。
如果要确保用户输入的空格不会最终出现在数据库中,则应为此使用ModelForm。最不喜欢直接使用request.POST的django
关于Django不能在创建时进行验证吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38640161/