我只想访问一个包含外键的数据库表。 我在postgres 9.1中创建了2个表。
Django中的模型是:
class bfirma(models.Model):
class Meta:
db_table="bfirma"
f_id= models.IntegerField(primary_key=True)
f_name = models.TextField()
class bworker(models.Model):
class Meta:
db_table="bworker"
w_id = models.IntegerField(primary_key=True)
w_name = models.TextField()
fk_f_id=models.ForeignKey(bfirma)
这就是它在表格中的表现:
bfirma(table)
f_id(pk)|f_name
1 BMW
2 Benz
bworker(table)
w_id(pk)|w_name|fk_f_id(fk)
1 WorkerA 1
2 WorkerB 1
3 WorkerC 2
在没有FOREIGN KEY的情况下调用模型 bfirma 工作正常。没问题。但我无法将模型称为 bworker
bf= bfirma.objects.using(db).filter(f_name='BMW').values() WORKING FINE
bw = bworker.objects.using(db).all().values() ERROR:= Unable to get repr for <class 'django.db.models.query.ValuesQuerySet'>
如果我使用FOREIGN KEY定义注释掉以下行,则它可以正常工作
#fk_f_name=models.ForeignKey(bfirma)
我想要一些非常简单的东西:bfirma和bworker的名字
select bfirma.f_name, bworker.w_name from bfirma, bworker
where bfirma.f_id = bworker.fk_f_id
更新:昨天我的电脑刚刚冻结;我不得不重新启动。在那之后我创建了一个新的数据库并且突然之间它已经工作了。不知何故,它现在可以使用ForeignKey处理该行...
答案 0 :(得分:0)
只想拥有一些非常简单的东西:bfirma的名字 和bworker
bw = bworker.objects.get(pk=1) # fetch bworker with primary key 1
print bw.fk_f_id.f_name # f_name of bfirma for this bworker