2013-11-06 2 views
0

Пользователь никогда не аутентифицируется, даже когда пользователь вошел в систему. На правой боковой панели всегда отображается сообщение «Не зарегистрировано». Мне нужно что-то вернуть в base.html? И как я это сделаю? мне нужна новая функция в views.py? но нет url для base.hthl. Что мне не хватает? Пожалуйста, будьте конкретны, я в веб-разработчике. PS: я также попробовал, если request.user.is_loggedin и некоторые другиеDjango - шаблон - Пользователь никогда не был аутентифицирован

base.html

<div id="sidebar"> 
    {% block sidebar %} 
    <ul> 
     <li><a href="/notes/all">Notes</a></li> 

    </ul> 
    {% endblock %} 
</div> 

<div id="rightsidebar"> 
    {% block rightsidebar %} 

     {% if request.user.is_authenticated %} 
      Loggedin 
     {% else %} 
      Not Loggedin 
     {% endif %} 


    {% endblock %} 
</div> 

<div id="content"> 
    {% block content %}This is the content area{% endblock %} 


</div> 

views.py

def auth_view(request): 
    username = request.POST.get('username','') 
    password = request.POST.get('password','') 
    user = auth.authenticate(username = username, password = password) 

    if user is not None: 
     if user.is_active: 
      auth.login(request,user) 
      return HttpResponseRedirect('/accounts/loggedin') 
     else: 
     return HttpResponseRedirect('/accounts/auth_view') 
else: 
    return HttpResponseRedirect('/accounts/invalid') 
+0

Какой вид отображает шаблон шаблона ('base.html')? вы, вероятно, не используете 'RequestContext' при рендеринге указанного шаблона. –

ответ

3

Уметь для использования

{% if request.user.is_authenticated %} 

Вам нужно сделать следующее в просмотре:

from django.template import RequestContext 

def view(request): 
    my_data_dictionary = {} 
    # code here 
    return render_to_response('template.html', 
          my_data_dictionary, 
          context_instance=RequestContext(request)) 


def view(request): 
    # code here 
    return render_to_response('template.html', {}, 
          context_instance=RequestContext(request)) 

Потому что вам нужно использовать контекстные процессоры.

+0

def auth_view возвращает другие вещи. как я могу вернуть несколько переменных или списков? И что такое my_data_dictionary, ??? –

+0

Его просто словарь значений, которые вы хотите использовать в своем шаблоне. Например, если вы запросили базу данных и хотите показать результат набора запросов, вам необходимо передать запрос в dictionnary. В любом случае в вашем состоянии просто замените его '{}' – moenad

+1

'auth_view' перенаправляет на другие виды. Поэтому вам нужно поместить этот код в это url-представление '/ accounts/loggedin' или'/accounts/auth_view' ... – moenad

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