【发布时间】:2019-09-11 03:55:20
【问题描述】:
当我尝试使用 DetailView 查看我的帖子时,我不断收到异常错误。
在 /post/1/ 处配置不正确 BlogDetailView 缺少查询集。定义 BlogDetailView.model、BlogDetailView.queryset 或覆盖 BlogDetailView.get_queryset()。 请求方法:GET 请求网址:http://127.0.0.1:8000/post/1/ Django 版本:2.2 异常类型:配置不当 异常值:
BlogDetailView 缺少查询集。定义 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
我已经对照 Will Vicent 的 Django For Beginners 一书审查了我的代码,但我仍然找不到任何问题
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 时,此代码应该允许我查看我的帖子
【问题讨论】:
标签: django detailview