Django 모델에 항목을 어떻게 나열합니까?
-
07-07-2019 - |
문제
Django Publisher 예제와 함께 일하고 있습니다. List_Publisher.html 템플릿을 통해 DB에 모든 게시자를 나열하고 싶습니다. 내 템플릿은 모양입니다.
{% extends "admin/base_site.html" %}
{% block title %}List of books by publisher{% endblock %}
{% block content %}
<div id="content-main">
<h1>List of publisher:</h1>
{%regroup publisher by name as pub_list %}
{% for pub in pub_list %}
<li>{{ pub.name }}</li>
{% endfor %}
</div>
{% endblock %}
하지만 내가 달릴 때 "http://127.0.0.1:8000/list_publisher/"템플릿은 오류없이 페이지 제목을 인쇄합니다! 내가 무엇을 잘못하고 있습니까?
해결책
몇 가지 제안 :
- base_site.html이 a를 정의하는지 확인하십시오
{% block content %}{% endblock %}
내 list_publisher.html에 의해 정정 될 섹션 - 목록의 카디널리티를 확인하십시오.
{%regroup publisher by name as pub_list %}{{ pub_list|length }}
. 적어도 목록의 길이를 표시해야합니다. '0'이라면 ... 왜 아무것도 표시하지 않는지 알고 있습니다. - 목록이 재편성을 사용하기 전에 실제로 이름으로 정렬되었는지 확인하거나
{% regroup publisher|dictsort:"name" by name as pub_list %}
확인하기
길이가 '0'인 경우 게시자가 정의되어 있는지 확인해야합니다 (데이터베이스에서 초기화).
다시 말해, 어디서나 (템플릿 또는 정의 된 템플릿)가 나타 납니까 :
publisher = Publisher.objects.all().order_by("name")
?
(다시 말하지만, 재편성 태그가 올바르게 작동하는지 확인하려면 이름별로 순서가 중요합니다)
다른 팁
Vonc의 좋은 답변.
pub_list를 보는 빠르고 더러운 방법은 [{{pub_list}}]
템플릿에서. 비어있는 경우를 대비하여 정사각형 괄호 안에 넣었습니다. BTW, 당신은 모양을 얻을 수 있습니다 [,,,,,]
. 객체 참조가 <>에 싸여 있고 브라우저가 WTF로 이동하기 때문입니까? 보기 소스 만 있으면 전체 결과가 표시됩니다.
제휴하지 않습니다 StackOverflow