我正在尝试使用Django根据会话是否设置来输出 HTML 页面。
当我提交我的 Django 表单(通过我的视图)时,我将会话设置为:
def index(request):
users = Users.objects.all()
totalUsers = len(users)
form = CreateUserForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
form = CreateUserForm()
context = {
"form": form,
'users': users,
"totalUsers": totalUsers,
}
request.session.set_expiry(300)
request.session['loggedIn'] = True
return render(request, 'SmartCity/index.html', context)
我知道这是成功的,因为我可以看到数据库中设置的值。
在我的 CustomTags.py 文件中,我想或多或少地检查会话变量“loggedIn”是否设置,如果是,则返回一件事,否则,返回另一件事。这就是我想实现它的方式,但它不起作用:
from Django import template
register = template.Library()
@register.inclusion_tag('SmartCity/index.html', takes_context=True)
def hello_world(context):
request = context['request']
loggedInStatus = request.session.get('logged_in', 'False')
if loggedInStatus == True:
return "Hello world"
我收到的错误是: https ://preview.ibb.co/dqAe8k/2017_09_19_18_06_57.png
我可能完全走错了路……如果您能给 Django 初学者提供任何建议,我将不胜感激:)