Sai*_*ath 2 python django foreign-keys
我正在使用 Django 开发一个网络应用程序。我已经在 MySQL 数据库中创建了表,然后使用检查数据库生成 models.py。我能够毫无问题地获取详细信息并连接到数据库。但是在将值保存到特定表时,显示以下错误
sav_list = List(id=4, item_name ='name1', item_desc='desc1', location='location', reason='rfp', pid=3)
Run Code Online (Sandbox Code Playgroud)
无法分配“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.
Run Code Online (Sandbox Code Playgroud)
我已尝试使用关联名称作为外键,但行为仍然相同。相同的值可以毫无问题地存储在数据库中。只有 Django 会抛出错误。
请有人帮助我!
您应该粘贴实际的错误;据推测“List.pid ”一定是一个“Order”实例。
错误应该是清楚的。pid是一个外键字段,它需要相关模型的实例。您可以获取该项目并设置它:
pid = Order.objects.get(pk=3)
List(...., pid=pid)
Run Code Online (Sandbox Code Playgroud)
或使用底层 id 字段:
List(...., pid_id=3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5092 次 |
| 最近记录: |