Python 为什么我会出现这个错误;局部变量';文本';作业前参考“;
我试图使用python和Django创建一个共享函数,当我运行“share”时,它会返回一个错误。这是我的密码: views.pyPython 为什么我会出现这个错误;局部变量';文本';作业前参考“;,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
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
未赋值,但您的词典尝试引用它。我相信这就是错误的原因。你到底不明白什么?我不明白我为什么会犯这个错误。你能澄清一下吗。