我是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 www.example.com shell向Person添加条目。manage.py shell.
到目前为止,我已经尝试过:
import sqlite3
from trials.models import *
conn = sqlite3.connect('privy.db')
print Person #this returns <class 'privy.trials.models.Person'>
cur = conn.cursor()
fields = ['name', 'pers_type']
row = ['Adam', 'Appellant']
Person.objects.create(**dict(zip(fields, row)))
但这会返回一个错误:值错误:不能转让"上诉人":"Person. pers_type"必须是"Person_Type"示例。
字符串"Appellant"已经存储为"Person_Type. pers_type"表中的值之一。要使其引用pers_type字段,需要做什么更改?
如果需要的话,我很乐意提供更多的细节。非常感谢您抽出时间。
1条答案
按热度按时间rkue9o1l1#
这里,作为person_type参数,create()方法期望获得person_type示例,而不是字符串
因此,只需提供:
或者,考虑到“上诉人”不在数据库中的情况: