如何在Django中隐藏URL中的View参数?

时间:2015-10-13 10:09:17

标签: django django-views django-urls

我有一个显示模型对象的视图。使用我想要作为视图参数的键对对象进行排序,以便我可以创建一个系统,用户可以选择如何对查询集进行排序。 我目前的设置如下:

def comics(request, sorting_key):
    comics = Comic.objects.all().order_by(sorting_key)
    ...

然而,问题是我需要在网址的某处包含排序键,我不希望这样。有没有办法解决这个问题?或者我是否坚持使用明确显示排序键的URL?

2 个答案:

答案 0 :(得分:0)

您可以使用cookies,当用户更改排序参数并重新加载页面以对数据进行排序时,您可以在客户端浏览器上设置cookie,这将再次调用相同的视图,在您的视图中从请求中读取cookie对该参数进行排序。

当没有设置cookie或对该密钥进行排序时,请注意默认参数,因为用户可以更改或删除cookie。

答案 1 :(得分:0)

您可以使用相同的网址替换带有<a>标记的菜单链接中的<form>标记,并使用post发送排序键,并在视图中从request.POST读取。