Python 为什么我会出现这个错误;局部变量';文本';作业前参考“;

Python 为什么我会出现这个错误;局部变量';文本';作业前参考“;,python,django,Python,Django,我试图使用python和Django创建一个共享函数,当我运行“share”时,它会返回一个错误。这是我的密码: views.py from django.shortcuts import render from basicapp.forms import UserForm, UserProfileInfoForm, PostForm from django.contrib.auth.models import User from basicapp.models import UserP

我试图使用python和Django创建一个共享函数,当我运行“share”时,它会返回一个错误。这是我的密码:

views.py

    from django.shortcuts import render
from basicapp.forms import UserForm, UserProfileInfoForm, PostForm
from django.contrib.auth.models import User
from basicapp.models import UserProfileInfo


from django.urls import reverse
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib.auth import login,logout,authenticate
@login_required
def user_post(request):
    form = PostForm(request.POST)
    if form.is_valid():
        text = form.cleaned_data['post']
        form = PostForm()
        return HttpResponseRedirect(reverse('index'))
    else:
        HttpResponse("Not Valid try dat boi agian")

    render(request, 'basicapp/userpost.html', 
                    {'form':form,
                     'text':text})
forms.py

class PostForm(forms.Form):
    post = forms.CharField(max_length=256)


您没有在
中返回
HttpResponse
,否则
块执行将继续到下一行代码,该行代码需要定义
文本
变量,但由于
是有效的
块从未运行,因此范围内没有
文本

如果在
表单的
if
else
分支中都有
return
,那么您也永远不会到达最后一行

def user_post(request):
    form = PostForm(request.POST)
    if form.is_valid():
        text = form.cleaned_data['post']
        form = PostForm()
        return HttpResponseRedirect(reverse('index'))
    else:
        return HttpResponse("Not Valid try dat boi agian") # return here

    return render(request, 'basicapp/userpost.html', # should return here too but this line will never run
                           {'form':form,
                            'text':text})

请粘贴错误信息页面的文本,而不是图像。避免外部链接和图像,但在问题中将错误显示为格式正确的文本。如果
form.is\u valid()
为False,则您的变量
text
未赋值,但您的词典尝试引用它。我相信这就是错误的原因。你到底不明白什么?我不明白我为什么会犯这个错误。你能澄清一下吗。