यह लगभग निश्चित रूप से एक डुप्लिकेट प्रश्न है, जिस मामले में माफी माँगती है, लेकिन मैं SO पर लगभग आधे घंटे की खोज कर रहा हूं और यहां जवाब नहीं मिल रहा है। मैं शायद गलत खोज शब्द का उपयोग कर रहा हूँ, क्षमा करें।विदेशीकी फ़ील्ड की गिनती के अनुसार आदेश?
मेरे पास एक उपयोगकर्ता मॉडल और सबमिशन मॉडल है। प्रत्येक सबमिशन में एक विदेशीकी फ़ील्ड होता है जिसे उपयोगकर्ता ने अपलोड किया है, जिसे उपयोगकर्ता ने अपलोड किया है।
class Submission(models.Model):
uploaded_by = models.ForeignKey('User')
class User(models.Model):
name = models.CharField(max_length=250)
मेरा प्रश्न बहुत सरल है: मैं सबसे प्रविष्टियों के तीन उपयोगकर्ताओं की सूची कैसे मिल सकता है?
मैं उपयोगकर्ता मॉडल पर एक num_submissions विधि बनाने की कोशिश की:
def num_submissions(self):
num_submissions = Submission.objects.filter(uploaded_by=self).count()
return num_submissions
और फिर कर:
top_users = User.objects.filter(problem_user=False).order_by('num_submissions')[:3]
लेकिन यह विफल रहता है, के रूप में सभी अन्य बातों के मैं कोशिश की है है। क्या मैं वास्तव में एक स्मार्ट डेटाबेस क्वेरी का उपयोग कर कर सकता हूं? या क्या मुझे विचार फ़ाइल में कुछ और हैकी करना चाहिए?
बहुत अच्छा, यह 'Profile.objects.annotate (num_items = count (' user__item ') के साथ ईवेंट का काम करता है)। Order_by (' - num_items ') ' – skrat
हाय, मैं पूछना चाहता हूं कि फिल्टर करने का कोई तरीका है या नहीं पिछले 24 घंटों में केवल अधिकांश सबमिशन वाले उपयोगकर्ता? मान लीजिए कि सबमिशन में टाइमस्टैम्प फ़ील्ड है। –