【问题标题】:How to fix Django DetailView Missing query set exception error如何修复 Django DetailView 缺少查询集异常错误
【发布时间】: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


    【解决方案1】:

    您的 DetailView 中有一个简单的错字:Model 而不是 model

    【讨论】:

    • 哦哇...我怎么会错过呢?谢谢你向我指出这一点。我开始认为将 Python 和 Django 作为第一门编程语言学习并不是一个好主意。
    • 非常相似。 mode 而不是 model,这个答案给了我解决方案。谢谢兄弟
    猜你喜欢
    • 2021-11-13
    • 2020-01-10
    • 1970-01-01
    • 2015-12-03
    • 2015-04-08
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多