द्वारा एक क्वेरीसमूह चलो कहते हैं कि मैं निम्नलिखित मॉडल हैं:आदेश कुल क्षेत्र मूल्य
class Contest:
title = models.CharField(max_length = 200)
description = models.TextField()
class Image:
title = models.CharField(max_length = 200)
description = models.TextField()
contest = models.ForeignKey(Contest)
user = models.ForeignKey(User)
def score(self):
return self.vote_set.all().aggregate(models.Sum('value'))[ 'value__sum' ]
class Vote:
value = models.SmallIntegerField()
user = models.ForeignKey(User)
image = models.ForeignKey(Image)
एक साइट के उपयोगकर्ताओं कई प्रतियोगिताओं के लिए उनके चित्र योगदान कर सकते हैं। फिर अन्य उपयोगकर्ता उन्हें ऊपर या नीचे वोट दे सकते हैं। सब कुछ ठीक काम करता है, लेकिन अब मैं एक ऐसा पृष्ठ प्रदर्शित करना चाहता हूं जिस पर उपयोगकर्ता किसी निश्चित प्रतियोगिता में सभी योगदान देख सकें। छवियों को उनके स्कोर द्वारा आदेश दिया जाएगा। जैसा कि मैंने के बाद से 'स्कोर' कोई डाटाबेस क्षेत्र है कि प्रश्नों में इस्तेमाल किया जा सकता है यह काम नहीं करता आशंका
Contest.objects.get(pk = id).image_set.order_by('score')
: इसलिए मैं निम्नलिखित की कोशिश की।
ग्रेट सॉल्यूशन! :) – okoman
मुझे परिणाम के परिणाम मिल रहे हैं ... वे ज्यादातर क्रम में हैं, लेकिन कुछ उनमें से गलत हैं ... इसका कारण क्या हो सकता है? – Jiaaro
यह केवल उस विशिष्ट मामले के लिए समाधान है, न कि प्रश्न शीर्षक के लिए: "विधि द्वारा क्वेरीसेट आदेश"। विधि द्वारा क्वेरीसेट को ऑर्डर करने का यह समाधान नहीं है: @ एसएलॉट प्रतिक्रिया सामान्य मामले के लिए सही समाधान है –