sqlite3用python家外键_python – Django / Sqlite3为带有外键的模型添加一行

这篇博客讲述了作者在使用Django框架和SQLite3数据库时遇到的问题,具体是在尝试向Person模型添加具有Person_Type外键的记录。作者尝试通过python manage.py shell命令行直接插入数据,但遇到了ValueError,提示必须提供Person_Type实例而非字符串。解决方案可能涉及查找或创建相应的Person_Type对象后再进行插入操作。
摘要由CSDN通过智能技术生成

我是Django和SQlite3的新手.我有一个模型(Person),带有(Person_Type)的外键:

class Person(models.Model):

name = models.CharField(max_length=500)

pers_type = models.ForeignKey(Person_Type)

def __unicode__(self):

return self.name

class Person_Type(models.Model):

pers_type = models.CharField(max_length=40)

def __unicode__(self):

return self.pers_type

我正在尝试使用python manage.py shell向Person添加条目.

到目前为止,我尝试过:

import sqlite3

from trials.models import *

conn = sqlite3.connect('privy.db')

print Person #this returns

cur = conn.cursor()

fields = ['name', 'pers_type']

row = ['Adam', 'Appellant']

Person.objects.create(**dict(zip(fields, row)))

但是这会返回一个错误:ValueError:无法指定“’Appellant’”:“Person.pers_type”必须是“Person_Type”实例.

字符串“Appellant”已经存储为“Person_Type.pers_type”表中的一个值.我需要更改什么来引用pers_type字段?

如果需要,很高兴提供更多细节.非常感谢你花时间陪伴.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值