django 使用selef 报错
views文件from app.cs import Cs
def cs(request):
Cs(request,ss)
return render(request, 'hrr.html', {'deat': ss})
cs文件
from django.db.models import Q
class Cs(object):
def __init__(self,request,pagesize=17):
self.n = request.GET.get('q')
if self.n:
self.ss = models.Userinfo.objects.filter(
Q(id__icontains=n) |
Q(name__icontains=n) |
Q(password__icontains=n) |
Q(age__icontains=n) |
Q(daa__icontains=n)
)
报错信息
File "D:\软件\djangoProject\app\views.py", line 130, in cs
return render(request, 'hrr.html', {'deat': ss})
NameError: name 'ss' is not defined
"GET /cs/ HTTP/1.1" 500 68383
根据您的代码和错误信息,问题出在views.py文件中的cs函数。在cs函数中,您尝试访问未定义的变量ss 。要解决这个问题,您需要在Cs类的__init__方法中返回ss ,并在cs函数中接收它。
首先,修改cs文件中的Cs类,将ss作为属性存储:
from django.db.models import Q
from app import models
class Cs(object):
def __init__(self, request, pagesize=17):
self.n = request.GET.get('q')
self.ss = []
if self.n:
self.ss = models.Userinfo.objects.filter(
Q(id__icontains=self.n) |
Q(name__icontains=self.n) |
Q(password__icontains=self.n) |
Q(age__icontains=self.n) |
Q(daa__icontains=self.n)
)
然后,修改views.py文件中的cs函数,将Cs类的实例化后的对象赋值给一个变量,并将ss属性传递给render函数:
from app.cs import Cs
def cs(request):
cs_instance = Cs(request)
return render(request, 'hrr.html', {'deat': cs_instance.ss})
现在,错误应该已经解决。这将允许您在hrr.html模板中使用deat变量。
页:
[1]