Django:模型可以在没有模型字段数据的情况下创建吗?

时间:2016-10-11 08:17:12

标签: django

这是我的代码:

class Order(TimeStampedModel):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    merchant_uid = models.CharField(max_length=30, unique=True)
    imp_uid = models.CharField(max_length=30)
    from_cart = models.BooleanField()

    class Meta:
        ordering = ('-created',)

    def __str__(self):
        return self.merchant_uid

但奇怪的是,

  1. Order.objects.create(user=request.user, from_cart=True)有效(views.py)。

  2. order = Order(user=request.user, from_cart=True)order.save()也有效。

  3. 我没有在blank=Truenull=True字段设置merchant_uidimp_uid,这意味着required字段。

    但是如何在没有这些字段的情况下创建模型呢?

1 个答案:

答案 0 :(得分:1)

值保留为空。因为null=False,Django不会为这些字段将空值存储为null,而是数据库使用空字符串('')作为无法获取值的varchar列

blank用于验证,例如验证ModelForm时。它与数据库约束无关。你这里没有做任何验证,所以它没有关系。