2016-09-28 45 views
0

我努力學習的Django模型列值和我有這樣一個簡單的模型:如何從外鍵

class Document(models.Model): 
    labelled_image = models.ForeignKey(LabelModel, db_column='label') 

因此,這指的是另一種模式(LabelModel),其定義爲:

class LabelModel(models.Model): 
    image = models.FileField(upload_to='documents/label', 
          db_column='path', default='Some Value') 

現在,在某些時候我節省Document模型的實例,我也得到了主鍵的保持。所以,我可以得到由模型實例:

obj = Document.objects.filter(pk=document_id) 

現在,我的問題是我怎麼能得到相應的imageLabelModel外鍵指向的實際價值?在數據庫僞我想有這樣的事情(我有一段時間沒有這樣做):

SELECT path from label_table where id=obj.labelled_image 

,這將返回我從數據庫的路徑字符串。

回答

1

首先,你必須使用getfilter在原來的查詢來獲取文件:

obj = Document.objects.get(pk=document_id) 

因爲filter總是返回一個QuerySet,即使只有一個匹配的對象。

現在你有obj,你可以使用普通的點號獲取屬性:

obj.labelled_image 

這將返回LabelModel的相關實例,obj.labelled_image.image將返回文件字段的值。

+0

謝謝!這就像一個魅力。另外,謝謝你不使用'filter'的提示 – Luca