Django重用不同模板中的视图

2024-04-19 07:21:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是个愚蠢的问题,但现在已经很晚了,我的大脑在喝了第六杯咖啡后就死了。在

我正在构建(或试图)一个简单的博客应用程序,在主页上显示一个文章索引-又名。最近的文章-和在主博客页面。为此,我设法勾勒出以下观点:

def index(request):
'''Article index'''
archive_dates = Article.objects.datetimes('date_publish','month', order='DESC')
categories = Category.objects.all()

page = request.GET.get('page')
article_queryset = Article.objects.all()
paginator = Paginator(article_queryset, 5)

try:
    articles = paginator.page(page)
except PageNotAnInteger:
    #If page requested is not an integer, return first page.
    articles = paginator.page(1)
except EmptyPage:
    #If page requested is out of range, deliver last page of results.
    articles = paginator.page(paginator.num_pages)

return render(
    request,
    'blog/article/index.html',
{
    'articles': articles,
    'archive_dates': archive_dates,
    'categories': categories
}
)

不过,为了在两个不同的url中显示索引,我复制了代码,只改变了几个变量,即名称和要呈现的模板。在

  1. 如何在两个url中呈现这个视图,而不在我的views.py?

  2. 我认为我必须有3个视图,一个主视图和两个子视图,从主视图导入代码,对吗?

  3. 还是应该使用自定义模板标记?

编辑

按要求,添加网址.py在

^{pr2}$

Tags: 视图indexobjectsrequestarticle文章pageall
1条回答
网友
1楼 · 发布于 2024-04-19 07:21:04

非常简单:将conf中的两个url映射到视图中,如下所示:

urlpatterns = patterns('',
                       url(r'first_expression', index, name='first'),
                       url(r'second_expression', index, name='second'),
                       )

另外,对您的代码有一点建议:尽量避免通配符导入。他们很危险。。。 欧洲工商管理学院使用:

^{pr2}$

相关问题 更多 >