Форум сайта python.su
Я пытаюсь в шаблоне сделать такое действие:
index.html
{% if user.is_authenticated %} <p>Прывэд, {{ user.username }}</p> {% else %} <p>Зарегистрируйся</p> {% endif %}
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.auth')
{% block content %} {% if form.has_errors %} <p>Your username and password didn't match. Please try again.</p> {% endif %} <form method="post" action="."> <table> <tr><td><label for="id_username">Username:</label></td><td>{{ form.username }}</td></tr> <tr><td><label for="id_password">Password:</label></td><td>{{ form.password }}</td></tr> </table> <input type="submit" value="login" /> <input type="hidden" name="next" value="{{ next }}" /> </form> {% endblock %}
def index(request): if request.user.is_authenticated(): val = 'Ok' return render_to_response('index.html', {'val': val}) else: val = 'No' return render_to_response('index.html', {'val': val})
Офлайн
Для того чтобы работали контекст процессоры нужно использовать RequestContext
Офлайн
Daevaorn
По ссылке какой то пример для телепатов. Если можно поясните что сие значит и как используется:
c = RequestContext(request, { 'foo': 'bar', }
Офлайн
Note
If you’re using Django’s render_to_response() shortcut to populate a template with the contents of a dictionary, your template will be passed a Context instance by default (not a RequestContext). To use a RequestContext in your template rendering, pass an optional third argument to render_to_response(): a RequestContext instance. Your code might look like this:def some_view(request): # ... return render_to_response('my_template.html', my_data_dictionary, context_instance=RequestContext(request))
Офлайн