(在谷歌计算引擎实例上运行)
我创建了以下模型&数据库表,数据库表在模块之前创建并填充了数据。
class MyCompany(models.Model):
companyuniqueid = models.AutoField(primary_key=True)
name = models.CharField(max_length=150)
phonenumber = models.CharField(max_length=20, unique=True)
email = models.EmailField(blank=True, unique=True)
class Meta:
managed = True
db_table = 'mycompany'
class MyUser(models.Model):
UserUniqueID = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
nickname = models.CharField(max_length=50)
phonenumber = models.CharField(max_length=20, unique=True)
class Meta:
managed = True
db_table = 'myuser'
我创建了两个简单的视图,使用django company_list = MyCompany.objects.all()
从表中选择所有视图,对于用户来说一切正常!
问题:
当我尝试输入以下company = models.ForeignKey(MyCompany)
的MyUser模型时
调用该服务失败,错误为:myuser.company_id does not exist
列
MyUser数据库表有一列引用MyCompany.companyuniqueid列,如下所示:
定义:CompanyUniqueID BIGINT NULL
,
和参考:
CONSTRAINT user_company_id_fkey FOREIGN KEY (CompanyUniqueID)
REFERENCES MyCompany (CompanyUniqueID)
我读过Django为主键添加了一个默认的_id,但无法弄清楚如何将其删除或指向companyuniqueid
答案 0 :(得分:1)
与所有字段一样,您可以使用db_column
参数指定字段所代表的数据库列:
company = models.ForeignKey(MMCompany, db_column='CompanyUniqueID')
答案 1 :(得分:0)
您也可以使用models.OneToOneField()是ForeignKey。