赋值前引用的局部变量“post”是什么? [已关闭]

问题描述 投票:0回答:1

我正在用 Django 制作博客,当我正确遵循教程时,它不断向我显示此错误,而我使用他的教程的人没有得到相同的错误,我哪里出错了?

加上一些像“post”和“request”这样的代码是灰色的,为什么? 并且没有类似的答案解决它,我也更改了名称“post”,但它不起作用

提前致谢

from django.shortcuts import render, redirect, get_object_or_404
from .forms import postform
from .models import post


def detail(request, id):
     post = get_object_or_404(post, pk=id)
     return render(request, "posts/detail.html", {"post": post})


def delete(request, id):
     post = get_object_or_404(post, pk=id)
     post.delete()
     return redirect("/")

def new(request):
    if request.method == "POST":
         form = postform(request.POST)
         if form.is_valid():
              form.save()
              return redirect("/")     
    else:
         form = postform()
    return render(request, "posts/new.html", {"form": form })
python django post blogs
1个回答
0
投票
from .models import post

def detail(request, id):
     post = get_object_or_404(post, pk=id)

不要使用相同的变量名称,因为“变量阴影”。 您的代码定义了一个新的“post”变量,因此该函数不会从全局查找“post”。
改为:

post_obj=get_object_or_404...

© www.soinside.com 2019 - 2024. All rights reserved.