【发布时间】:2018-07-17 11:55:56
【问题描述】:
我正在使用 Django 开发一个网络应用程序。我已经在 MySQL 数据库中创建了表,然后使用 inspectdb 生成了 models.py。我能够毫无问题地获取详细信息并连接到数据库。但是在将值保存到特定表时,会显示以下错误
sav_list = List(id=4, item_name ='name1', item_desc='desc1', location='location', reason='rfp', pid=3)
无法分配“3”:“List.id”必须是“Order”实例。
我的模型
class List(models.Model):
id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase.
item_name = models.CharField(db_column='Item_Name', max_length=255) # Field name made lowercase.
item_desc = models.CharField(db_column='Item_Desc', max_length=300) # Field name made lowercase.
location = models.CharField(db_column='Location', max_length=100, blank=True, null=True) # Field name made lowercase.
reason = models.CharField(db_column='Reason', max_length=100, blank=True, null=True) # Field name made lowercase.
pid = models.ForeignKey('Order', models.DO_NOTHING, db_column='PID') # Field name made lowercase.
class Order(models.Model):
poid = models.IntegerField(db_column='POID', primary_key=True) # Field name made lowercase.
po = models.CharField(db_column='PO', unique=True, max_length=20) # Field name made lowercase.
quote = models.CharField(db_column='Quote', unique=True, max_length=20) # Field name made lowercase.
condition = models.CharField(db_column='Condition', max_length=15) # Field name made lowercase.
我已经为外键尝试了相关名称,但仍然是相同的行为。相同的值可以毫无问题地存储在数据库中。只有 Django 会抛出错误。
请有人帮助我!!!
【问题讨论】:
-
试试
pid_id,因为它是相关领域 -
使用 Django 进行开发的典型方式是创建模型并让 Django 的迁移处理数据库的创建和更改。 Django 也会自己创建一个主键,所以通常不需要手动创建一个。
-
谢谢@ThatBird。它奏效了。
标签: python django foreign-keys