我尝试使用 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初学者提出的任何建议:)