टेम्प्लेट पृष्ठ में, जब मैं किसी विदेशी कुंजी द्वारा संबंधित ऑब्जेक्ट के चर के माध्यम से चक्र करना चाहता हूं, तो मैं set.all फ़ंक्शन का उपयोग करता हूं।
उदाहरण के लिए:
{% for object2_info in object1.object2_set.all %}
{[object2_info.something}}
{% endfor %}
मैं क्या प्राप्त नहीं करता है, मैं इसे रिवर्स में कैसे कर सकता हूं? आपको लगता है कि यह कुछ इस तरह होगा:
{% for object1_info in object2.object1_set.all %}
{[object1_info.something}}
{% endfor %}
लेकिन, यह मामला नहीं है।
किसी भी सहायता की सराहना की जाएगी।
उत्तर:
उत्तर № 1 के लिए 1यह आपकी मॉडल परिभाषाओं पर निर्भर करता है। मान लें कि आपके पास कई-से-कई रिश्ते हैं
class Autor(models.Model):
name = models.CharField(max_length=42)
class Entry(models.Model):
title = models.CharField(max_length=21)
authors = models.ManyToManyField(Author)
यहां, हम आपके पहले उदाहरण की तरह प्रविष्टियों को एक्सेस कर सकते हैं, यह मानते हुए कि हम पास हैं Author
हमारे टेम्पलेट के लिए वस्तु:
{% for entry in author.entry_set.all %}
{{ entry.title }}
{% endfor %}
लेकिन कोई नहीं है author_set
पर Entry
, क्योंकि हमने स्पष्ट रूप से इसका नाम दिया है: authors
.
{% for author in entry.authors.all %}
{{ author.name }}
{% endfor %}
आप इसके बारे में और अधिक पढ़ सकते हैं आधिकारिक दस्तावेज.