请注意,自从我最近开始工作以来,我在AJAX中是个大傻瓜。
我使用的是Django 2.0和Python。
我试图以数组的形式返回不兼容选项的列表。在
这是我的模型:
class Door(models.Model) :
image = models.ImageField(upload_to=upload_location)
color = models.ForeignKey(Color, on_delete=models.CASCADE)
price = models.DecimalField(max_digits=10, decimal_places=2, default='119.99')
not_comp_options = models.ManyToManyField(Option)
这是我的js模板:
^{pr2}$这是我的网址:
urlpatterns = [
# Other url patterns
path('get_not_compat_options', views.get_not_compat_options, name="get_not_compat_options")
]
以下是我的观点:
def get_not_compat_options(request, door_id) :
onct = []
door = get_object_or_404(Door, id=door_id)
not_compat_options = door.not_comp_options
for option in not_comp_options.all() :
onct.append(option.name)
data.append({"onct": onct})
return JsonResponse(data)
不幸的是,在浏览器控制台中,我收到一个错误消息:500 (Internal Server Error)
PS:如果可以的话,我的服务器使用Nginx和gunicorn。在
这里有些奇怪的事情:
success
句柄,结果看起来应该是一个带有键onct
的字典;并且urls.py
中的url不包含door_id
参数。在通过在查询中使用
.values_list(..)
,我们还可以节省一点数据库带宽,并使视图更加优雅:然后,AJAX请求可能看起来像:
^{pr2}$此外,
urls.py
应该看起来像:因为否则这个
path(..)
不能接受door_id
。在您在调用
data.append()
时没有先定义数据。在也许你也想要
或者
^{pr2}$相关问题 更多 >
编程相关推荐