gpt4 book ai didi

python - django 搜索表单 UnboundLocalError at/

转载 作者:行者123 更新时间:2023-12-02 02:33:54 24 4
gpt4 key购买 nike

我尝试使用此代码添加搜索框,但出现错误:

Blank result

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

在模型中:

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

编辑了第二个 View ,但我没有使用它的结果

{{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']
<b>name</b> = Products.objects.filter(titulo__icontains=term)
return render(request,'base.html', {'name': <b>name</b>})

您在这里定义一个变量,例如if主体中的name。但现在假设 if 语句中的条件 not true,那么它将跳过正文。然而,在 if 主体之后,您使用 name 变量。现在,如果该陈述不正确,您将使用一个从 undefined variable 。

您可以解决此问题,例如首先定义默认值:

def home(request):
<b>name = Products.objects.all()</b>
if 'search' in request.GET:
term = request.GET['search']
name = Products.objects.filter(titulo__icontains=term)
return render(request,'base.html', {'name': name})

现在,如果条件不成立,则变量仍然会被设置,因为我们在 if 语句之前定义了它,例如,这里我们返回比所有产品。

在你的第二个 View 中,同样的情况发生,但现在罪魁祸首是 item 变量。

关于python - django 搜索表单 UnboundLocalError at/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497129/

24 4 0
文章推荐: c++ - 我的 C++ 代码中的错误在哪里?
文章推荐: swift - 我们如何在 SwiftUI 中读取和写入同一个 ObservableObject?
文章推荐: vue.js - 我如何使用 Vuelidate 来验证