我只想简单地访问包含外键的数据库表。 我在postgres 9.1中创建了2个表格。如何使用django模型的外键访问数据库postgres表
内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
调用模型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'>
如果我注释掉与外键定义以下行,它的工作原理
#fk_f_name=models.ForeignKey(bfirma)
我只是想有一些真的很简单:昨天我的电脑强制:bfirma和bworker
更新的名称冻结;我必须重新调整。之后,我创建了一个新的数据库,并且很快就开始工作。不知怎的,它现在可以处理与ForeignKey的行...
Offtopic的:请为您的类(包括模型)在CamelCase中,并尝试为所有变量使用可读的名称。 – ilvar 2012-03-15 01:48:00
并检查您发布的代码 - 在您的代码中,bw不能抛出有关ValuesQuerySet的错误,因为它不使用values()。 – ilvar 2012-03-15 01:50:25
尝试在bworker.objects.using(db).all()]中尝试启动时没有值():[(bw.w_name,bw.bfirma.f_name)bw) – ilvar 2012-03-15 01:52:16