اذهب إلى المحتوى

السؤال

نشر

لدي مشروع جانغو Django، وفيه يمكن للمستخدمين إنشاء المنشورات بسهولة، وأريد أن أقوم بتنفيذ إستعلام Query في قاعدة البيانات للحصول على عدد المستخدمين الذين لديهم أكثر من 10 منشورات. يمكنني عمل هذا الأمر بإستخدام SQL ولكن أريد أن يتم تنفيذه بإستخدام جانغو Django، لذلك قمت بكتابة الكود التالي:

User.objects.select_related('post__gte=10').count()

لكن يبدو أن هذه الطريقة غير صحيحة ولا تعمل بالشكل المطلوب.

كيف يمكنني معرفة عدد المستخدمين الذي لديهم أكثر من 10 منشورات في جانغو Django؟

Recommended Posts

  • 1
نشر

جرب الطريقة التالية:

أولا يجب أن يكون models  post يحتوى على user = models.ForeignKey(auth.User) 

class Post(models.Model):
    user = models.ForeignKey(auth.User)
    # ... more fields ...

ستقوم بكتابة السطر التالي :

حيث هنا ستستخدم مكتبة Count في ملف فيو:

from django.db.models import Count    
user_posts = User.objects.annotate(total_posts = Count('post'))

وفي ملف Template:

{% for user in user_posts %}

<p>{{user.first_name}} has written {% user.total_posts %} posts so far <p>

{% endfor %}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...