Django generic view
8843 단어 Django
views에서만.py 문서에서 이런 종류를 인용하면template에 필요한list를 빨리 생성할 수 있습니다.
from django.views.generic import ListView
from books.models import Publisher
class PublisherList(ListView):
model = Publisher # ! get
그리고template/books/publisherlist.html 단순 렌더링:{% block content %}
Publishers
{% for publisher in object_list %} # :publiser_list( ,model list ), view :context_object_name = 'my_special_apply', my_special_apply object_list
{{ publisher.name }} {% endfor %} {% endblock %}
而若想展示指定的数据(即先作筛选),则只需修改PublisherList类:
class PublisherList(ListView):
queryset = Publisher.objects.filter( ) # ! model
위의 맞춤법에서 선별 조건은 동적으로 진행할 수 없고 죽기만 할 수 있다. 동적으로 하려면 override ListView의 get 만 있으면 된다.queryset(self) 방법:
class PublisherList(ListView):
# model = ApplyInfo # model
def get_queryset(self):
pub_name = self.request.GET.get("publisher_name", "")
# addr = " "
return Publisher.objects.filter(publisher_name=pub_name)
그리고 아래의 함수에 맞추어context의 내용을 풍부하게 한다def get_context_data(self, **kwargs):
context = super(Publisher, self).get_context_data(**kwargs)
context['title'] = "demosd" # context
return context
2、DetailView
ListView에서 제공하는 내용이 전시용으로 충분하지 않을 때 DetailView를 사용할 수 있는 더 구체적인 정보가 필요합니다.
from django.views.generic import DetailView
from books.models import Publisher, Book
class PublisherDetail(DetailView):
model = Publisher
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super(PublisherDetail, self).get_context_data(**kwargs)
# Add in a QuerySet of all the books
context['book_list'] = Book.objects.all()
return context
이렇게 하면 context 대상이 booklist의 데이터입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.