• 1400/03/08

مرتب کردن لیست بر اساس بیشترین استفاده :

دو تا مدل دارم برچسب و مقاله که با MenyToMeny برچسب رو به مقاله متصل کردم.

 

class Article(Common):
    title = models.CharField(max_length=120, verbose_name='عنوان')

    tag = models.ManyToManyField(ArticleTag, related_name="tag", blank=True, verbose_name='برچسب')

به دو مورد زیر نیاز دارم

1-دریافت لیست برچسب ها،  بر اساس بیشترین تعداد استفاده شده (مثلا برچسب " اندروید" توی 10 تا مقاله استفاده شده بیاد اول لیست).

2-دریافت و ارسال تعداد دفعات استفاده هر برچسب به ویو (HTML).

  • 1400/03/08
  • ساعت 10:00

سلام وقت بخیر

ببینید شما با تعریف related_name برای Article به هر دو مدل دسترسی دارید

که شما به این صورت تعریفش کردید

related_name="tag"

حالا برای بدست اوردم تعداد استفاده :

{% for myTag in tags %}
	{{ myTag.tag.count }}
	# Uses Count
{% endfor %}

برای مرتب سازی کوئری هم به این شکل عمل کنید :

from django.db.models import Count

tags = ArticleTag.objects.annotate(usesCount=Count('tag'))
                            .order_by("-usesCount")

 

 

 


logo-samandehi