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%}块在模板中进行整理。     

要回复问题请先登录注册