Джанго: Есть ли способ установить глобальные взгляды? Например, включить данные для боковой панели через все URL-адреса. - PullRequest
0 голосов
/ 11 августа 2010

Я создаю приложение Django, которое является довольно простым блогом, и пока оно было замечательным. Я получил комментарии, теги и т.д. Но одна вещь беспокоит меня: я не могу получить боковую панель, я хочу работать. Я использую общее представление django.views.generic.date_based, и это мой urls.py для блога:

    urlpatterns = patterns('django.views.generic.date_based',
        (r'(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail',dict(info_dict, slug_field='slug',template_name='blog/detail.html')),

 (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, template_name='blog/list.html')),

 (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>w{1,2})/$','archive_day',dict(info_dict,template_name='blog/list.html')),

 (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$','archive_month', dict(info_dict, template_name='blog/list.html')),

 (r'^(?P<year>\d{4})/$','archive_year', dict(info_dict, template_name='blog/list.html')),

 (r'^$','archive_index', dict(info_dict, template_name='blog/list.html')),

)

Когда я использую URL с пропущенным 'archive_index', я могу легко распечатать последние записи для моей боковой панели, но когда я введу сообщение, я буду использовать один из лучших, где доступен только "object_detail". Это делает мои записи на боковой панели исчезают. Как лучше всего решить эту проблему? Есть ли способ сделать некоторые объекты доступными глобально? Через представления или иным образом.

1 Ответ

5 голосов
/ 11 августа 2010

Люди делают такие вещи с тегами шаблонов. документация для пользовательских шаблонных тегов может быть полезной, а также есть небольшой небольшой учебник здесь .

В качестве альтернативы, вы можете использовать контекстные процессоры - но это добавляет накладные расходы к каждому отдельному запросу, что может не потребоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...