赋值前引用的局部变量"data"



UnboundLocalError at/post/赋值前引用的局部变量"data" 请求方法: 发布 请求网址: http://127.0.0.1:8000/post/姜戈版本: 1.11.3 异常类型: UnboundLocalError 异常值: 赋值前引用的局部变量"data" 异常位置: D:\website\formapp\views.py in index, 第 56 行

def index(request):
if request.method == 'POST':
form = Postform(request.POST,request.FILES)
if form.is_valid():
f=form.save(commit=False)
f.user=request.user
f.save()
return HttpResponseRedirect('/post/')
else:
form = Postform()
data=Post.objects.order_by('-date_created')
return render(request,'home2.html',{'form':form,'data':data})

class Postform(forms.ModelForm):
pic=models.FileField()
vid=models.FileField()
class Meta:
model=Post
#fields=['title','content','pic'] 
fields='__all__'

<form action=' ' method = 'POST' enctype="multipart/form-data">
{% csrf_token %}
<h3>Title:</h3> {{form.title}}<br><br>
<h3>Content:</h3> {{form.content}}<br><br>
<h3>Pic: </h3>{{form.pic}}<br>
<button type= 'submit' class='btn btn-primary btn-md'>Save</button>
<br><br>
</form>

如果form.is_valid()返回False,则必须为data赋值。

def index(request):
if request.method == 'POST':
form = Postform(request.POST,request.FILES)
if form.is_valid():
f=form.save(commit=False)
f.user=request.user
f.save()
return HttpResponseRedirect('/post/')
else:
form = Postform()
data=Post.objects.order_by('-date_created') # take this out of the `else` block.
return render(request,'home2.html',{'form':form,'data':data})

最新更新