如何解决Django:我应该使用查询字符串还是干净的URL来映射显示参数?如何?
| 我有以下urlconf:urlpatterns = patterns(\'page.manager.views\',url(r\'^$\',\'pages\',name=\'page_manager-pages\'),url(r\'^add/$\',\'add_page\',name=\'page_manager-add_page\'),url(r\'^(?P<page_id>\\d+)/\',include(object_patterns)),)
\'pages \'视图必须返回所有页面的对象列表。通过侧面菜单为用户提供几个显示/搜索选项:
-创建:任意/过去6小时/ 12小时/ 24小时/周
-状态:任何/ status_1 / status_2 / status_3
-持续时间:任意/持续时间_1 /持续时间_2 /持续时间_3
等等
这些选项用于选择应向用户显示哪些值,并可以组合使用,例如:created = any,status = status_1,duration = duration_1
我的问题是,如何最好地在Django中实现这一目标?
到目前为止,我有:
我可以为列表对象的通用视图创建子类,创建一个接受参数(创建的,状态,持续时间等)并提供适当查询集的视图(将选择的(或默认的)排序选项与其他参数一起传递)。
为了传递这些参数,查询字符串似乎是正确的选择,因为我们正在从资源(所有页面的列表)中进行选择。是/否?
我也知道我们从request.GET.get(\'argument_name \')获得此信息。
但是如何为搜索选项创建链接?例如:any,any / status_1 / status_2 / status_3。我们需要知道哪些已经处于活动状态,所以...模板标记?也许更简单的方法?
这是在Django中处理此类事情的正确解决方案,还是有更好的方法?
解决方法
由于您的查询中包含离散,可选和无序的知识,因此我认为GET是最好的方法。另外,请注意request.GET是一个字典(因此,您可以执行request.GET [\'status \'])。
至于搜索选项,我想说一个模板标签和一个上下文变量可能都合适,这取决于您的视图细节。我最可能的方法是使用需要显示的True / False标志填充上下文字典,然后使用{%if%}块在模板中进行整理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。