मैंने अपने मॉडल को सरल बना दिया है ताकि मैं इसे करने की कोशिश कर रहा हूं।Django: कई लोगों के माध्यम से कई ऑब्जेक्ट्स तक पहुंचना कई रिश्ते
(एप्लिकेशन टीमों में models.py)
from django.db import models
from django.contrib.auth.models import User
import datetime
class Team(models.Model):
users = models.ManyToManyField(User)
team_title = models.CharField(max_length=200)
team_description = models.CharField(max_length=200)
def __unicode__(self):
return self.team_title
(एप्लिकेशन दस्तावेज़ में models.py)
from django.db import models
import datetime
class Document(models.Model):
teams = models.ManyToManyField("Teams.Team", blank=True)
document_title = models.CharField(max_length=200)
document_description = models.TextField()
def __unicode__(self):
return self.document_title
क्या मैं प्राप्त करने के लिए है, जो के साथ जुड़े रहे उपयोगकर्ताओं की सूची हो रही है चाहते हैं पहले दस्तावेज से जुड़े सभी टीमों को प्राप्त करने वाला दस्तावेज़ और फिर उन टीमों से जुड़े सभी उपयोगकर्ताओं को प्राप्त करना।
मेरे प्रयास अब तक इस
(एप्लिकेशन दस्तावेज़ में view.py) की तरह कुछ चले गए हैं
from django.contrib.auth.models import User
from Documents.models import *
from Teams.models import *
def docUsers(request, doc_id):
current_document = Documents.objects.get(pk = doc_id)
associated_users = current_document.teams.all().users
....
त्रुटि: 'क्वेरीसमूह' ऑब्जेक्ट कोई विशेषता 'उन'
associated_users = current_document.items.all().users.all()
है
त्रुटि: 'क्वेरीज़ेट' ऑब्जेक्ट में कोई विशेषता नहीं है 'उपयोगकर्ता'
associated_users = current_document.items.users.all()
त्रुटि: 'ManyRelatedManager' ऑब्जेक्ट कोई विशेषता 'उन'
मैं गलत तरीके से इस बारे में जा रहा हूँ है?
मैं अभी भी उलझन में हूं। दस्तावेज़ मॉडल के साथ टीम मॉडल एसोसिएशन दस्तावेज़ों से टीम तक है, दूसरी तरफ नहीं, (मुझे पता है कि यह सबसे तार्किक दृष्टिकोण नहीं है, लेकिन मुझे मॉडल संरचना बदलने की अनुमति नहीं है), तो मैं टीम के दस्तावेज़ कैसे फ़िल्टर कर सकता हूं? – Finglish
@agf 1. नहीं, आप फिल्टर अभिव्यक्ति के अंदर वास्तविक मॉडल नामों का उपयोग करते हैं। 2. नहीं, आप एम 2 एम/एफके रिलेशनशिप के भीतर एक तत्व को देखने के लिए = का उपयोग करते हैं। देखें [लुकअप जो संबंधों को फैलाता है] (https://docs.djangoproject.com/en/1.3/topics/db/queries/#lookups-that-span-relationships)। –
@ फ़िंग्लिश आप दोनों तरफ से रिश्तों तक पहुंच सकते हैं। एएफएफ को दिए गए लिंक को देखें। –