Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个URL中相同模型的Django ListView_Django - Fatal编程技术网

多个URL中相同模型的Django ListView

多个URL中相同模型的Django ListView,django,Django,我试图在Django中对多个URL使用同一模型上的ListView。具体来说,我有一个主页,使用ListView和Pagination发布博客文章,我希望有一个存档页面,使用ListView而不使用Pagination,设计不同。所以我试着这样做: url.py: from django.conf.urls import patterns, url from django.views.generic import ListView, DetailView from blogengine.mode

我试图在Django中对多个URL使用同一模型上的ListView。具体来说,我有一个主页,使用
ListView
Pagination
发布博客文章,我希望有一个存档页面,使用
ListView
而不使用
Pagination
,设计不同。所以我试着这样做:

url.py:

from django.conf.urls import patterns, url
from django.views.generic import ListView, DetailView
from blogengine.models import Post

urlpatterns = patterns('',
    # index
    url(r'^(?P<page>\d+)?/?$', ListView.as_view(
        model=Post,
        paginate_by=4,
        )),
    # individual posts
    url(r'^(?P<slug>[a-zA-Z0-9-]+)/?$', DetailView.as_view(model=Post,
                                                           )),
    # archive
    url(r'^archive/$', ListView.as_view(
        model=Post,
        )),
)
来自django.conf.url导入模式,url
从django.views.generic导入ListView,DetailView
从blogengine.models导入帖子
urlpatterns=模式(“”,
#索引
url(r'^(?P\d+?/?$),ListView.as_视图(
模型=员额,
分页单位=4,
)),
#个别职位
url(r'^(?P[a-zA-Z0-9-]+)/?$,详细视图。如图所示(模型=Post,
)),
#档案馆
url(r“^archive/$”,ListView.as\u视图(
模型=员额,
)),
)

但是Django只是忽略了归档链接,因为基于类的视图已经被使用(所以我得到了404)。对此,我有哪些选项?

url
/archive/
与详细信息视图的url模式相匹配。您有两个选择:

  • 将归档url模式移到详细url模式上方。注意,这意味着您不能使用
    slug=“archive”
  • 更改单个帖子的url模式,使其不会与存档url模式冲突。例如:

    url(r'^posts/(?P<slug>[a-zA-Z0-9-]+)/?$', DetailView.as_view(model=Post,
                                                       )),`
    
    url(r'^posts/(?P[a-zA-Z0-9-])/?$,DetailView.as_视图(model=Post,
    )),`