是否存在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/

10-12 18:21