Как исправить ошибку исключения набора отсутствующих запросов Django DetailView - PullRequest
1 голос
/ 21 апреля 2019

Когда я пытаюсь использовать DetailView для просмотра своих сообщений, я получаю сообщение об ошибке исключения.

Неправильно настроен в / post / 1 / В BlogDetailView отсутствует QuerySet. Определите BlogDetailView.model, BlogDetailView.queryset или переопределите BlogDetailView.get_queryset (). Метод запроса: GET URL запроса: http://127.0.0.1:8000/post/1/ Джанго версия: 2.2 Тип исключения: неправильно настроен Значение исключения:
В BlogDetailView отсутствует QuerySet. Определите BlogDetailView.model, BlogDetailView.queryset или переопределите BlogDetailView.get_queryset (). Расположение исключения: C: \ Users \ julia.virtualenvs \ Documents-SYi_ANcG \ lib \ site-packages \ django \ views \ generic \ detail.py в get_queryset, строка 73 Исполняемый файл Python: C: \ Users \ julia.virtualenvs \ Documents-SYi_ANcG \ Scripts \ python.exe Версия Python: 3.7.3

Я пересмотрел свой код в отношении книги Джанго для начинающих Уилла Висента. Однако я не могу найти никаких проблем

models.py

from django.db import models

# Create your models here.

class Post(models.Model):

    title = models.CharField(max_length=200)

    author = models.ForeignKey(

        'auth.User',

        on_delete=models.CASCADE,

    )
    body = models.TextField()

    def __str__(self):

        return self.title

views.py

from django.views.generic import ListView, DetailView # new
from .models import Post

# Create your views here.

class BlogListView(ListView):

    model = Post

    template_name = 'home.html'

class BlogDetailView(DetailView): # new

    Model = Post

    template_name = 'post_detail.html'

urls.py

# blog/urls.py
from django.urls import path
from .views import BlogListView, BlogDetailView # new

urlpatterns = [

    path('post/<int:pk>/', BlogDetailView.as_view(), name='post_detail'), # new

    path('', BlogListView.as_view(), name='home'),

]

post_detail.html

<!-- templates/post_detail.html-->
{% extends 'base.html' %}

{% block content %}
    <div class="post-entry">
        <h2>{{ post.title }}</h2>
        <p>{{ post.body }}</p>
    </div>

{% endblock content %}

Этот код должен позволять мне видеть мои сообщения, когда я просматриваю http://127.0.0.1/posts/1 или post / 2

1 Ответ

1 голос
/ 21 апреля 2019

В вашем DetailView есть простая опечатка: Model вместо model.

...