में कई-से-अनेक संबंध में पहले आइटम आइटम हो रही है मैं Django में दो मॉडल इस तरह ManyToMany संबंध से एक साथ जुड़े है: मैं समूह में मुख्य व्यक्ति प्राप्त करने की आवश्यकताDjango
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person)
जो समूह में पहला व्यक्ति है। मैं पहला व्यक्ति कैसे प्राप्त कर सकता हूं?
यहाँ कैसे मैं सदस्यों को जोड़ने हूँ:
grp = Group.objects.create(name="Group 1")
grp.save()
prs = Person.objects.create(name="Tom")
grp.members.add(prs) #This is the main person of the group.
prs = Person.objects.create(name="Dick")
grp.members.add(prs)
prs = Person.objects.create(name="Harry")
grp.members.add(prs)
मुझे नहीं लगता कि मैं मेज group_members
की आईडी के रूप में किसी भी अतिरिक्त कॉलम की ज़रूरत है एक चल अनुक्रम सही है।
यदि मैं समूह के मुख्य सदस्य को Group.objects.get(id=1).members[0]
के माध्यम से लाने का प्रयास करता हूं तो Django का कहना है कि प्रबंधक अनुक्रमणीय नहीं है।
यदि मैं इस Group.objects.get(id=1).members.all().order_by('id')[0]
को आजमाता हूं, तो मुझे Person
तालिका में निम्नतम आईडी वाला सदस्य मिल जाता है।
मैं इसे कैसे हल कर सकता हूं?
धन्यवाद
तुम कैसे निर्धारित करने के लिए समूह में "पहली" व्यक्ति है करना चाहते हैं? आईडी? वर्णक्रम? – Brandon
तालिका 'group_members' तालिका में सबसे कम 'id' वाला वाला। वस्तुओं को इस तालिका से कभी भी हटाया नहीं जाता है, इसलिए मुख्य सदस्य हमेशा समूह के लिए समान होगा। –
एलेक्स गेनर का जवाब सही है। समूह द्वारा क्रमबद्ध करने के लिए आपको एक अतिरिक्त फ़ील्ड जोड़ना होगा, क्योंकि आईडी कॉलम समूह के अनुक्रमिक होने की गारंटी नहीं है। – Brandon