Это, наверное, глупый вопрос, но его очень поздно здесь, и мой мозг умер после моего 6-го кофе.Django - Повторное использование просмотров в разных шаблонах
Я создаю (или пытаюсь) простое приложение для ведения блогов, которое будет отображать индекс статьи на главной странице - иначе. последние статьи - и на главной странице блога. Для этого мне удалось набросать разработать следующий вид:
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-адреса Я скопировал код меняющийся только несколько переменных, то есть. имя и шаблон для рендеринга.
Что я могу сделать, чтобы сделать это представление в обоих URL-адресах, но не дублировать его в моих view.py?
Я прав, думая, что мне придется иметь 3 вида, основной и два подзаголовка, которые будут импортировать код из основного?
Или использовать вместо этого специальный тег шаблона?
EDIT
В соответствии с просьбой, добавив urls.py
from django.conf.urls import *
from django.contrib import admin
from settings import MEDIA_ROOT
from django.views.generic import TemplateView
from blog.views import *
admin.autodiscover()
urlpatterns = patterns('',
#Blog URLs
url('^$', home_index, name='blog-preview'),
url('^blog/archive/(?P<year>[\d]+)/(?P<month>[\d]+)/$', date_archive, name='blog-date-archive'),
url('^blog/archive/(?P<slug>[-\w]+)/$', category_archive, name='blog-category-archive'),
url('^blog/categories/', category_list, name='blog-category-list'),
url('^blog/(?P<slug>[-\w]+)/$', single, name='blog-article-single'),
url('^blog/$', index, name='blog-article-index'),
url(r'^contact/', include("contact_form.urls", namespace="contact_form")),
url(r'^admin/', include(admin.site.urls)),
)
Вы должны иметь возможность просто добавить строку в свой urls.py. Можете ли вы отредактировать свой пост, чтобы включить его? – schillingt
Добавил мой urls.py, спасибо, что помог мне! – Hevlastka