2017-02-16 8 views
0

Если пользователь успешно зарегистрирован, мне нужно указать один шаблон. если пользователь не входит в систему, мне нужно показать другой шаблон.Как изменить шаблон на основе аутентификации пользователя в django

Я создал два шаблона один - base.html другой - base_login.html шаблон.

ЕСЛИ пользователь успешно зарегистрирован Мне нужно позвонить base_login.html другой мудрый base.html. Для этого я использую ниже. это не дает ожидаемого результата. Как достичь этого?

{% if user.is_authenticated %} 
     <p>Welcome {{ user.username }} !!!</p> 
     {% extends "base_login.html" %} 
{% else %} 
     {% extends "base.html" %} 
{% endif %} 
+0

ваш qury является правильным, но мне нужно знать, является ли вы создать «движки или не «если не создать пользовательский бэкэнда, а затем попробовать его – Cadmus

+0

i создал файл base.html и файл base_login.html –

+0

получение этой ошибки Тип исключения: \t TemplateSyntaxError Исключительное значение: \t Недопустимый тег блока в строке 5: 'else'. Вы забыли зарегистрировать или загрузить этот тег? –

ответ

1

Если ваш шаблон идет недействительным, я предлагаю вам к нему в views.py, пример:

from django.shortcuts import render, render_to_response 

def homepage(request): 
    template_name = 'homepage.html' 
    extended_template = 'base_login.html' 

    if request.user.is_authenticated(): 
     extended_template = 'base.html' 

    return render(
     request, template_name, 
     {'extended_template': extended_template, ...} 
    ) 

# homepage.html 
{% extends extended_template %} 

{% block content %} 
    {% if request.user.is_authenticated %} 
    Hello {{ request.user }} 
    {% endif %} 
{% endif %} 

Note: if function of render still doesn't work well, please try with render_to_response such as this answer: https://stackoverflow.com/a/1331183/6396981

+0

получение этой ошибки:

+0

здесь home означает стартовое –

+0

Я уже пробовал, и работал на меня .. –

Смежные вопросы