Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从表单中的数据创建对数据库的查询_Django_Django Models_Django Forms - Fatal编程技术网

Django 从表单中的数据创建对数据库的查询

Django 从表单中的数据创建对数据库的查询,django,django-models,django-forms,Django,Django Models,Django Forms,我的代码 我需要检查我在表格中输入的数据。在向数据库发出请求并仅返回我在表单中指定的数据之后。我在“分配前引用的局部变量'query'结尾处出错”,可能是我对任务的处理方法错误。如何实现这个想法?这是一个简单的逻辑错误query不存在,但您仍尝试将其发送到模板。您可以通过在函数开头放置query=None来解决此问题 #model.py class Personal(models.Model): name = models.CharField(db_column='FIO', max_l

我的代码


我需要检查我在表格中输入的数据。在向数据库发出请求并仅返回我在表单中指定的数据之后。我在“分配前引用的局部变量'query'结尾处出错”,可能是我对任务的处理方法错误。如何实现这个想法?

这是一个简单的逻辑错误<当表单不是帖子时,code>query不存在,但您仍尝试将其发送到模板。您可以通过在函数开头放置
query=None
来解决此问题

#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})