当我尝试使用get()查询外键时,我始终得到None
的值,尽管我知道它们在数据库中设置为1。我在这里错过了什么吗?我应该做一些不同的事情来获得外键值吗?Django外键查询,为什么它返回None?
下面的代码是什么样子:
class Car_to_brand(models.Model):
brand_id = models.ForeignKey(Brand, db_column='brand_id')
...
class Brand(models.Model):
(id is not defined here but it's the primary key)
...
print Car_to_brand.__dict__.get(brand_id)
这会给我{brand_id:None}
,但它应该是{brand_id:1}
。
谢谢!你是对的,它包含brand_id_id而不是brand_id ...这是我的问题。 – Tickon
Alasdair:最后一行不应该是'car.brand.id'吗?汽车没有'brand_id'字段。 –
@Elf:不,我的意思是'car.brand_id'。也许我的'评论'不清楚,我试图澄清它。如果你有一个外键'car.brand',你可以用'car.brand_id'来访问这个ID。请参阅https://docs.djangoproject.com/en/dev/ref/models/fields/#database-representation。 'car.brand.id'会导致额外的查找django从db中获取品牌。 – Alasdair