2009-10-21 10 views
10

के बजाय ऑब्जेक्ट के रूप में टेम्पलेट में विदेशी कुंजी पर Django मान() प्रदर्शित करें मेरे पास Django में एक क्वेरीसेट है जो Model.objects.values('item') पर कॉल करता है ... जहां 'item' एक विदेशी कुंजी है।अपनी आईडी

class Words(models.Model): 
    word = models.CharField() 

class Frequency(models.Model): 
    word = models.ForeignKey(Words) 
    ... 

तो यह आइटम आईडी और टेम्पलेट में आईडी के रूप में प्रदर्शित करता है। मैं आईडी के बजाय टेम्पलेट में वास्तविक आइटम मान कैसे दिखा सकता हूं?

उत्तर

12

विदेशी कुंजी वस्तुओं के गुणों को संदर्भित करने के लिए, आपको फ़ील्ड में '__' लुकअप नोटेशन का उपयोग करना चाहिए। MyModel.objects.values('item__prop1', 'item__prop2', ...) आपके लिए काम करना चाहिए।

और आप इसे इस तरह के संपत्ति नामों का संदर्भ देकर टेम्पलेट्स में प्रिंट कर सकते हैं, जब परिणाम के लिए टेम्पलेट चर का नाम values है।

{% for v in values %} 
    Prop1: {{ v.item__prop1 }} 
    Prop2: {{ v.item__prop2 }} 
    ... 
{% endfor %} 
+3

जाहिर Achimnoi उपयोग कर रहा था 'prop1' एक उदाहरण के रूप - आप 'Model.objects.values ​​('word__word') क्या करना चाहिए' देख सकते हैं और में '{{v.word__word}}' टेम्पलेट में। –

+0

धन्यवाद, खूबसूरती से काम किया। – simi

+0

साझा करने के लिए धन्यवाद! – Xiwen