我正在使用Userena,我设置了所有可以注册/登录/更改我的个人资料的内容..但是一旦我离开个人资料页面,我就会自动退出或者似乎从未登录过。
看起来这可能有些不对劲吗? 这是来自base.html,我把它传递给索引html但是在索引html里面,没有登录。 {% load static %}
{% load i18n static %}
{% load url from future %}
{% if user.is_authenticated %}
<li><a href="/accounts/signout">Logout</a></li>
<li><a href="{% url 'add_category' %}">Add a new Category</a></li>
{% else %}
<li><a href="/accounts/signup/">Register Here</a></li>
<li><a href="/accounts/signin/">Login</a></li>
{% endif %}
我不知道在哪里看,请帮忙
我的views.py索引
#for front page
def index(request):
categories = Category.objects.order_by('likes')[:5]
latest_posts = Post.objects.all().order_by('-created_at')
popular_posts = Post.objects.all().order_by('-views')
hot_posts = Post.objects.all().order_by('-score')[:25]
t = loader.get_template('main/index.html')
context_dict = {
'latest_posts' :latest_posts,
'popular_posts' :popular_posts,
'hot_posts' :hot_posts,
'categories':categories
}
c = Context(context_dict)
return HttpResponse(t.render(c))
答案 0 :(得分:1)
只有{{ user }}
包含在模板上下文中时,才会在模板中包含{% user.is_authenticated %}
或user
。您可以在视图中明确添加它,
context_dict = {
'latest_posts': latest_posts,
'popular_posts': popular_posts,
'hot_posts': hot_posts,
'categories': categories,
'user': request.user,
}
c = Context(context_dict)
return HttpResponse(t.render(c))
或者您可以使用render
快捷方式,该快捷方式负责加载模板并为您呈现。
from django.shortcuts import render
def index(request):
categories = Category.objects.order_by('likes')[:5]
latest_posts = Post.objects.all().order_by('-created_at')
popular_posts = Post.objects.all().order_by('-views')
hot_posts = Post.objects.all().order_by('-score')[:25]
context_dict = {
'latest_posts': latest_posts,
'popular_posts': popular_posts,
'hot_posts': hot_posts,
'categories': categories
}
return render(request, 'main/index.html', context_dict)
如果您使用渲染快捷方式,则需要确保'django.contrib.auth.context_processors.auth'
设置中包含^[^\(]*\(([^;\)]+)
(它包含在默认生成的设置文件中)。