मैं पाइथन और डीजेगो में नया हूं, इसलिए कृपया मेरे साथ धैर्य रखें।Django (सभी दोस्तों की पोस्ट) के साथ जटिल क्वेरी
मैं निम्नलिखित मॉडल:
class User(models.Model):
name = models.CharField(max_length = 50)
...
class Post(models.Model):
userBy = models.ForeignKey(User, related_name='post_user')
userWall = models.ForeignKey(User, related_name='receive_user')
timestamp = models.DateTimeField()
post = models.TextField()
class Friend(models.Model):
user1 = models.ForeignKey(User, related_name='request_user')
user2 = models.ForeignKey(User, related_name='accept_user')
isApproved = models.BooleanField()
class Meta:
unique_together = (('user1', 'user2'),)
मुझे पता है कि यह सबसे अच्छा/सबसे आसान तरीका है Django के साथ संभाल करने के लिए नहीं हो सकता है, लेकिन मैं इसे इस तरह से सीखा है और मैं इसे इस तरह रखना चाहते हैं।
अब, मैं बस इतना करना चाहता हूं कि एक व्यक्ति से सभी पोस्ट प्राप्त करें और उसके दोस्तों हैं। सवाल यह है कि Django फ़िल्टर के साथ इसे कैसे किया जाए?
मैं एसक्यूएल में लगता है कि यह कुछ इस तरह दिखेगा:
SELECT p.* FORM Post p, Friend f
WHERE p.userBy=THEUSER OR (
(f.user1=THEUSER AND f.user2=p.userBy) OR
(f.user2=THEUSER AND f.user1=p.userBy)
)
शुद्धता की कोई गारंटी नहीं के साथ, बस परिणाम मैं तलाश कर रहा हूँ की एक विचार देने के लिए।
क्या उपयोगकर्ता से कोई विदेशी कुंजी है जिसे मित्रों को इंगित करना है? – cesar09
नहीं। "__friend" बिट रिश्ते के पीछे पीछे आता है, क्योंकि 'मित्र' के पास 'उपयोगकर्ता' के लिए एफके है। –
अधिक जानकारी के लिए प्रलेखन देखें [लुकअप जो संबंधों को फैलाता है] (https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships)। –