【发布时间】:2021-02-07 13:00:50
【问题描述】:
我正在使用 Django 制作这个待办事项列表网站,但我在 views.py 文件中的“创建”函数中不断收到此错误。这是代码:
def create(response):
if response.method == "POST":
form = CreateNewList(response.POST)
if form.is_valid():
n = form.cleaned_data["name"]
t = ToDoList(name=n)
t.save()
return HttpResponseRedirect("/%i" %t.id)
这是错误:
local variable 't' referenced before assignment
表格的类别是:
from django import forms
class CreateNewList(forms.Form):
name = forms.CharField(label="name", max_length=200)
check = forms.BooleanField()
模型是:
from django.db import models
class ToDoList(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Item(models.Model):
todolist = models.ForeignKey(ToDoList, on_delete=models.CASCADE)
text = models.CharField(max_length=300)
complete = models.BooleanField()
def __str__(self):
return self.text
我尝试在 if 语句之前分配变量。这是代码:
def create(response):
if response.method == "POST":
form = CreateNewList(response.POST)
t = ToDoList.objects
if form.is_valid():
n = form.cleaned_data["name"]
t.create(name=n)
t.save()
return HttpResponseRedirect("/%i" %t.id)
else:
form = CreateNewList()
return render(response, "main/create.html", {"form":form})
【问题讨论】:
-
如果表单无效怎么办
-
表格是否有效是什么意思?
-
what if -> if form.is_valid(): 返回 false 你希望如何在这一行中设置 t 变量 return HttpResponseRedirect("/%i" %t.id)
-
是的,什么是 form.is_valid()