【发布时间】:2018-07-14 12:45:53
【问题描述】:
业余开发者, 我有以下代码在 Python 2.7、Django 1.10 中运行良好。但是现在当我升级到 Django 2+ 和 Python 3+ 时,它给出了一个错误。
查看代码:
def get_class_name(request):
class_name = ClassName.objects.get(pk = request.GET.get('class_name', None))
classes = Class.objects.filter(class_name = class_name)
l = [[", ".join([s.subject for s in x.subject.all()]),s.id] for x in classes]
错误信息:
/ajax/get_class_name/ 处的名称错误
名称“s”未定义
请求方法:GET
请求网址:http://localhost:8000/ajax/get_class_name/?class_name=1
Django 版本:2.0
异常类型:名称错误
异常值:
名称“s”未定义
型号: 类类(模型。模型): 主题 = 模型.ManyToManyField(主题)
我该如何解决?
【问题讨论】:
-
问题出在这一行:"l = [[", ".join ([s.subject for s in x.subject.all ()]), s.id] for x in classes]”,因为当您尝试构建第二个列表时,您在上下文之外使用变量“s”,因为“s”仅存在于第二个列表的创建中。你想在这条线上做什么?
标签: python ajax django list view