亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Django 中按降序顯示名稱以及計數

在 Django 中按降序顯示名稱以及計數

當年話下 2022-08-25 14:41:00
我的 models.py 文件中有兩個模型,如下所述:class Company(models.Model):  company_name = models.CharField(max_length=100)  def __str__(self):    return f"{self.company_name}"Class Jobs(models.Model):  job_title = models.CharField(max_length=100)  job_company = models.ForeignKey(Company, models.on_delete=CASCADE)  job_location = models.CharField(max_length=50)  job_salary = models.CharField(max_length=20)  def __str__(self):    return f"{self.job_title}"這些表中的數據如下所示:  COMPANY--------------------|   COMPANY_NAME   |--------------------|   Google         ||   Facebook       ||   Microsoft      ||   Amazon         |--------------------  JOBS-------------------------------------------------------------------|   JOB_TITLE   |  JOB_COMPANY  |   JOB_LOCATION   |  JOB_SALARY  |-------------------------------------------------------------------| ENGINEER      | GOOGLE        | SAN JOSE         |  5000        || MANAGER       | AMAZON        | NYC              |  8000        || DELIVERY MAN  | AMAZON        | WASHINGTON DC    |  2000        || ACCOUNTANT    | MICROSOFT     | SFO              |  4000        || SALES LEAD    | GOOGLE        | SFO              |  5000        || DESIGNER      | GOOGLE        | NYC              |  3500        || CHEF          | GOOGLE        | NYC              |  2500        |-------------------------------------------------------------------我想在我的模板上顯示以下輸出:公司名稱以及公司提供的工作崗位數量按降序排列,如下所示。GOOGLE (4)AMAZON (2)MICROSOFT (1)非常感謝您的時間和幫助!
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

您可以在查詢集上使用 Django 的聚合來實現此目的。在你做這樣的事情:CountViews.py


from django.db.models import Count


queryset = MyModel.objects.all().annotate(count = Count('Google'))

dict1= {}

for each in queryset:

   #print(each.my_charfield, each.count)

   context[each.my_charfield] = each.count 


return render(request, 'some.html', context=dict1)

在模板中訪問它像


{% for key, value in dict1.items %}

     {{key}} ({{value}}) 

{% endfor %}


查看完整回答
反對 回復 2022-08-25
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

在 views.py 文件中:


def company(request):

    comp_details = Company.objects.annotate(jobs=Count('job')).order_by('-jobs')[:10]

    return render(request, 'index.html', {'comp_details': comp_details})

在索引.html文件中:


{% for company in comp_details %}

   {{ company.name }}

{% endfor %}

這將根據前10家公司提供的工作崗位數量顯示這些公司。


查看完整回答
反對 回復 2022-08-25
  • 2 回答
  • 0 關注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號