Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
django2搜索表单UnbundLocalError位于/_Django - Fatal编程技术网

django2搜索表单UnbundLocalError位于/

django2搜索表单UnbundLocalError位于/,django,Django,我试图添加一个带有以下代码的搜索框,但出现错误: 空白结果 在模型中: from django.db import models class Products(models.Model): name = models.CharField(max_length=255, blank=True, null=True) def __str__(self): return self.name 论观点 from django.shortcuts

我试图添加一个带有以下代码的搜索框,但出现错误:

空白结果

在模型中:

from django.db import models
    class Products(models.Model):
        name = models.CharField(max_length=255, blank=True, null=True)
      def __str__(self):
            return self.name
论观点

from django.shortcuts import render
from .models import Products
def home(request):
    if 'search' in request.GET:
        term = request.GET['search']
        item = Products.objects.filter(name__icontains=term)
    return render(request,'base.html', {'item':item})
如果我用这个,我就会出错 赋值前引用的局部变量“name” 如果我添加变量名

from django.shortcuts import render
    from .models import Products
    def home(request):
        item=none
        if 'search' in request.GET:
            term = request.GET['search']
            item = Products.objects.filter(name__icontains=term)
        return render(request,'base.html', {'item':item}) 
编辑了第二个视图,使用该视图我没有结果

{{Products.name}}
在html文件上 我还尝试:

def home(request):
    query = request.GET.get('search',None)
    items = Products.objects.all()
    if query is not None:
        items = items.filter(
            Q(items__contains=query)
            )
    context = {'items':items}
    return render(request, 'base.html', context)

在你所有的观点中,你或多或少犯了同样的错误:

def home(request):
    if 'search' in request.GET:
        term = request.GET['search']
        name = Products.objects.filter(titulo__icontains=term)
    return render(request,'base.html', {'name': name})
因此,如果条件不是真的,那么仍然设置变量,因为我们在
if
语句之前定义了它,例如,这里我们返回的比所有产品都多


在您的第二个视图中,同样的情况也会发生,但现在罪魁祸首是
变量。

“我什么也看不到*”可能是(不正确的)双重否定?请参阅此-
{Products.name}
在任何情况下都不起作用,因为您从未向模板发送任何名为
Products
的内容。
def home(request):
    if 'search' in request.GET:
        term = request.GET['search']
        name = Products.objects.filter(titulo__icontains=term)
    return render(request,'base.html', {'name': name})
def home(request):
    name = Products.objects.all()
    if 'search' in request.GET:
        term = request.GET['search']
        name = Products.objects.filter(titulo__icontains=term)
    return render(request,'base.html', {'name': name})