Django IntegrityError SQL:1048,不能为null

时间:2012-05-13 21:56:27

标签: python django model integrity

提交表单时,我会收到IntegrityError (1048, "Column 'paid_on' cannot be null")

经过一些研究后,我发现很多人通过将null=True, blank=True包含在models.py中的项目def中解决了类似的问题,但是将其添加到我的'paid_on'模型并没有解决我的问题。

以下是来自models.py的课程:

class Payment(models.Model):
  ad = models.ForeignKey(Ad)
  paid = models.BooleanField(default=False)
  paid_on = models.DateTimeField('Payment', null=True, blank=True)
  amount = models.DecimalField(max_digits=9,decimal_places=2)
  pricing = models.ForeignKey(Pricing)
  options = models.ManyToManyField(PricingOptions)

  def complete(self, amount=0.0):
    # clear payment
    if self.amount != amount:
        return False

    self.paid = True
    self.paid_on = datetime.datetime.now()
    self.save()

    # update ad
    self.ad.expires_on += datetime.timedelta(days=payment.pricing.length)
    self.ad.created_on = datetime.datetime.now()
    self.ad.active = True
    self.ad.save()

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

将数据添加到您的模型中无济于事,因为您的数据库仍然有限制。如果您想要/需要进行迁移(更改models.py的部分内容并且应该更改数据库),请查看支持Django迁移的south