Форум сайта python.su
Для проекта есть одна главная шаблонная страница *.html
В зависимости от состояния пользователя (авторизирован/неавторизирован) должны выводиться соответствующие элементы в шаблоне.
Такие проверок на авторизацию в этом шаблоне достаточно много:
{% if user.is_authenticated %}
Привет {{ user.username }}<br />
<a href="{% url acct_logout %}">Выход</a>
{% else %}
{% include "login_template.html" %}
{% endif %}
{% if user.is_authenticated %}
Загрузите свое изображение:<br />
{% include "upload_picture_template.html" %}
<br />
{% else %}
Авторизируйтесь, что бы иметь возможность добавлять рисунки.
{% endif %}
from django import template
register = template.Library()
@register.inclusion_tag('mini_template.html', takes_context=True)
def my_tag(context,what):
return {'whats': what}
{% load some_tags %}
# Вызываем включающий тег в тех местах где это нужно и передаем ему параметры
{% my_tag 'some_template_file.html' %}
Офлайн
Множественное использование if user.is_authenticated не нарушает DRY-принцып. В крайнем случае, можно просто использовать два разых шблона, для разных пользователей, и отнаследовать их от общего.
Офлайн