我的代码
#model.py
class Personal(models.Model):
name = models.CharField(db_column='FIO', max_length=255, blank=True, null=True)
history_contract = models.CharField(max_length=255, blank=True, null=True)
category = models.CharField(max_length=255, blank=True, null=True)
#form.py
class NameForm(forms.Form):
name = forms.CharField(label='Name', max_length=100)
history_contract = forms.CharField(label='History', max_length=100)
category = forms.CharField(label='Category', max_length=100)
#view
def get_personal(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']#data from form
history = form.cleaned_data['history_contract']#data from form
category = form.cleaned_data['category']#//data from form
query = Sotrudniki.objects.filter(fio__contain=name, history_contract__contain=history, category__contain=category)#The part I want to accomplish
else:
form = NameForm()
return render(request, 'personal.html', {'form': form, 'query': query})
我需要检查我在表单中输入的数据。在向数据库发出请求并仅返回我在表单中指示的数据之后。我在结束时“在赋值之前引用了”局部变量'查询'时出现错误,也许我对该任务有错误的方法。我该如何实现这个想法?
答案 0 :(得分:1)
这是一个简单的逻辑错误。当表单不是POST时,query
不存在,但您尝试将其发送到模板。您可以通过将query = None
放在函数的开头来解决此问题。