django에서 annotate를 사용하는 방법
1493 단어 django
categories = NewsCategory.objects.all()
글 모형의 이름이 뉴스이고 분류마다django가 자동으로 속성category를 추가합니다.news_set, 이 방법은 대응하는 문장을 분류한 다음category를 얻을 수 있습니다.news_set.count () 는 분류마다 몇 개의 문장이 있는지 얻을 수 있습니다.그러나 이 방법은 매우 저급하다. 만약에 고급스럽게 하려면 검색 성능이 더욱 최적화되고annotate가 알아야 한다.
。
categories = NewsCategory.objects.annotate(num_count=Count('news'))
annotate에는 categories (Queryset) 에 속성이 추가되어 있습니다. Queryset의 모든 대상에 이러한 속성이 있습니다. 현재 분류된 글의 수량을 조회할 수 있습니다: category.num_count()
:
def cms_news_category(request):
categories = NewsCategory.objects.all()
context = {
'categories': categories
}
return render(request, 'cms/category.html', context=context)
category.html :
{% for category in categories %}
{{ category.name }}
{{ category.news_set.count }}
{% endfor %}
annotate 사용 후 코드:
def cms_news_category(request):
categories = NewsCategory.objects.annotate(num_count=Count('news'))
context = {
'categories': categories
}
return render(request, 'cms/category.html', context=context)
category.html :
{% for category in categories %}
{{ category.name }}
{{ category.num_count }}
{% endfor %}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.