मेरे पास एक Django ऐप है जहां मेरे मुख्य मॉडल में अन्य डीबी टेबलों के लिए विदेशीकी फ़ील्ड हैं।Django: object.values () का उपयोग करके और टेम्पलेट में विदेशीकी डेटा प्राप्त करें
class Bugs(models.Model):
bug_id = models.PositiveIntegerField(primary_key=True)
bug_severity = models.ForeignKey(Bug_severity,null=True)
priority = models.ForeignKey(Priority,null=True)
bug_status = models.ForeignKey(Bug_Status,null=True)
resolution = models.ForeignKey(Resolution,null=True)
etc...
सभी विदेशीकी टेबलों में एक यूनिकोड फ़ंक्शन होता है जो उस टेम्पलेट में प्रदर्शित होने वाला नाम देता है।
class Priority(models.Model):
value = models.CharField(max_length=64)
sortkey = models.PositiveSmallIntegerField()
isactive = models.NullBooleanField()
visibility_value_id = models.SmallIntegerField(null=True,blank=True)
def __unicode__(self):
return self.value
ध्यान में रखते हुए, मैं के रूप में क्वेरी चला रहा हूँ:
bugs = Bugs.objects.filter(active=True).order_by('priority__sortkey','bug_severity__sortke
टेम्पलेट में, मैं उन के माध्यम से पुनरावृति, और ForeignKey मूल्य सही ढंग से प्रदर्शित कर सकते हैं।
{% for bug in bugs %}
<tr class="bugrow" >
<td>{{bug.bug_id}}</td>
<td>{{bug.priority}}</td>
<td>{{bug.bug_severity}}</td>
<td>{{bug.bug_status}}</td>
<td>{{bug.resolution}}</td>
समस्या मैं कर रहा हूँ कि मैं इसे टेम्पलेट को भेजने से पहले बग डेटा में हेरफेर करने की जरूरत है, इसलिए मैं() विधि मूल्यों का उपयोग एक शब्दकोश लौटने के लिए। जब मैं उस शब्दकोश को टेम्पलेट में पास करता हूं तो यह किसी भी फ़ील्ड को नहीं दिखाता जो कि विदेशीकी को इंगित करता है।
मुझे पूरा यकीन है कि कारण यह है कि मान केवल वास्तविक डेटाबेस मान लौटाते हैं, इसलिए यह एफके का पालन नहीं कर सकता है।
सवाल यह है कि, मैं इसे टेम्पलेट में भेजने वाले डेटा में कैसे उपयोग कर सकता हूं, और फिर भी विदेशीकी का पालन करता हूं?
यह पूरी तरह से काम किया। मैं कसम खाता हूं कि मैंने Queryset.values () दस्तावेज को 10 बार समझने की कोशिश की और एफके संबंधों के बारे में उस निचले ब्लॉक को कभी नहीं पढ़ा। – zoidberg
बुरा मत समझो - मैंने पहली बार याद किया जब मैंने कई बार याद किया। मैं व्यक्तिगत रूप से सोचता हूं कि दस्तावेज़ीकरण का एक विशेष टुकड़ा होना चाहिए, न कि बाद में विचार। –