當我嘗試使用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