鱼C论坛

 找回密码
 立即注册
查看: 3330|回复: 1

[已解决]django 使用selef 报错

[复制链接]
发表于 2023-5-5 12:22:22 | 显示全部楼层 |阅读模式
5鱼币
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
[05/May/2023 12:22:06] "GET /cs/ HTTP/1.1" 500 68383


最佳答案
2023-5-5 12:22:23
根据您的代码和错误信息,问题出在  views.py  文件中的  cs  函数。在  cs  函数中,您尝试访问未定义的变量  ss 。要解决这个问题,您需要在  Cs  类的  __init__  方法中返回  ss ,并在  cs  函数中接收它。

首先,修改  cs  文件中的  Cs  类,将  ss  作为属性存储:

  1. from django.db.models import Q
  2. from app import models

  3. class Cs(object):
  4.     def __init__(self, request, pagesize=17):
  5.         self.n = request.GET.get('q')
  6.         self.ss = []
  7.         if self.n:
  8.             self.ss = models.Userinfo.objects.filter(
  9.                 Q(id__icontains=self.n) |
  10.                 Q(name__icontains=self.n) |
  11.                 Q(password__icontains=self.n) |
  12.                 Q(age__icontains=self.n) |
  13.                 Q(daa__icontains=self.n)
  14.             )
复制代码


然后,修改  views.py  文件中的  cs  函数,将  Cs  类的实例化后的对象赋值给一个变量,并将  ss  属性传递给  render  函数:

  1. from app.cs import Cs

  2. def cs(request):
  3.     cs_instance = Cs(request)
  4.     return render(request, 'hrr.html', {'deat': cs_instance.ss})
复制代码


现在,错误应该已经解决。这将允许您在  hrr.html  模板中使用  deat  变量。

最佳答案

查看完整内容

根据您的代码和错误信息,问题出在 views.py 文件中的 cs 函数。在 cs 函数中,您尝试访问未定义的变量 ss 。要解决这个问题,您需要在 Cs 类的 __init__ 方法中返回 ss ,并在 cs 函数中接收它。 首先,修改 cs 文件中的 Cs 类,将 ss 作为属性存储: 然后,修改 views.py 文件中的 cs 函数,将 Cs 类的实例化后的对象赋值给一个变量,并将 ss 属性传递给 render 函数: 现在,错 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-5 12:22:23 | 显示全部楼层    本楼为最佳答案   
根据您的代码和错误信息,问题出在  views.py  文件中的  cs  函数。在  cs  函数中,您尝试访问未定义的变量  ss 。要解决这个问题,您需要在  Cs  类的  __init__  方法中返回  ss ,并在  cs  函数中接收它。

首先,修改  cs  文件中的  Cs  类,将  ss  作为属性存储:

  1. from django.db.models import Q
  2. from app import models

  3. class Cs(object):
  4.     def __init__(self, request, pagesize=17):
  5.         self.n = request.GET.get('q')
  6.         self.ss = []
  7.         if self.n:
  8.             self.ss = models.Userinfo.objects.filter(
  9.                 Q(id__icontains=self.n) |
  10.                 Q(name__icontains=self.n) |
  11.                 Q(password__icontains=self.n) |
  12.                 Q(age__icontains=self.n) |
  13.                 Q(daa__icontains=self.n)
  14.             )
复制代码


然后,修改  views.py  文件中的  cs  函数,将  Cs  类的实例化后的对象赋值给一个变量,并将  ss  属性传递给  render  函数:

  1. from app.cs import Cs

  2. def cs(request):
  3.     cs_instance = Cs(request)
  4.     return render(request, 'hrr.html', {'deat': cs_instance.ss})
复制代码


现在,错误应该已经解决。这将允许您在  hrr.html  模板中使用  deat  变量。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-29 03:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表