我一直得到错误名称"Blog_Post"未定义



我正在创建一个博客,这个博客有一个删除按钮。当你点击按钮时,你是配偶,被带回到主页,但你得到这个错误名称'Blog_Post'没有定义。如能帮助我,我将不胜感激。

views.py

from django.shortcuts import render, redirect
from django.views import generic
from . import models
from django.contrib.auth import get_user_model
User = get_user_model()
from django.urls import reverse_lazy
from django.contrib.auth.mixins import LoginRequiredMixin

class create_blog_post(generic.CreateView):
model = models.Blog_Post
template_name = 'blog_app/creat_post.html'
fields = ('post_title', 'blog_content')
success_url = reverse_lazy('blog_app:all')
class view_blog_post(generic.DetailView):
model = models.Blog_Post
template_name = 'blog_app/view_post.html'
def delet_blog_post(request, id):
blog_post = Blog_Post.objects.get(id=blog_post_id)
blog_post.delete()
return redirect("/")
class all_blog_posts(generic.ListView):
model = models.Blog_Post
template_name = 'blog_app/all_posts.html'
#slug_url_kwarg = "slug"

在这一行中,您没有在任何地方声明blog_post_idBlog_Post.objects.get (id = blog_post_id)

你需要的Blog_post_id = id。或者只是id=id其中id是你发送给delete_blog_post函数的内容

试试这个:

from django.contrib.auth import get_user_model
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import render, redirect
from django.urls import reverse_lazy
from django.views import generic
from .models import Blog_Post
User = get_user_model()

class create_blog_post(generic.CreateView):
model = Blog_Post
template_name = 'blog_app/creat_post.html'
fields = ('post_title', 'blog_content')
success_url = reverse_lazy('blog_app:all')

class view_blog_post(generic.DetailView):
model = Blog_Post
template_name = 'blog_app/view_post.html'

def delet_blog_post(request, id):
blog_post = Blog_Post.objects.get(id=blog_post_id)
blog_post.delete()
return redirect("/")

class all_blog_posts(generic.ListView):
model = Blog_Post
template_name = 'blog_app/all_posts.html'
#slug_url_kwarg = "slug"

最新更新