【问题标题】:AutoField not working in Django-nonrelAutoField 在 Django-nonrel 中不起作用
【发布时间】:2014-07-20 16:46:20
【问题描述】:

型号:

class MasterDishList(models.Model):
    dishid = models.AutoField(primary_key=True)
    dishname = models.CharField(max_length=100)
    username = models.ForeignKey(User)
    dishprice = models.IntegerField()

如果我尝试:

objectoadd = MasterDishList.objects.create(dishname="somename", dishprice=100, username=userobject)

我明白了:

/home/abd/Development/Projects/misc/fadster-backend/djangotoolbox/db/basecompiler.pyc in execute_sql(self, return_id)
    581                 if value is None and not field.null and not field.primary_key:
    582                     raise IntegrityError("You can't set %s (a non-nullable "
--> 583                                          "field) to None!" % field.name)
    584 
    585                 # Prepare value for database, note that query.values have

IntegrityError: You can't set dishid (a non-nullable field) to None!

这显然是一个错误,对吧?还是我错过了什么?
我可以使用任何解决方法吗?

【问题讨论】:

  • Django 自动为每个模型添加一个主键。为什么需要自己添加?

标签: django django-nonrel


【解决方案1】:

您的主键似乎与默认值相同。建议不要指定字段,因为它会被 django 自动添加:

Automatic primary key fields

您可以将模型保留为:

class MasterDishList(models.Model):
    dishname = models.CharField(max_length=100)
    username = models.ForeignKey(User)
    dishprice = models.IntegerField()

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 2013-04-16
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多