Django CustomTags使用Session

时间:2017-09-19 08:48:58

标签: django session django-custom-tags

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

0 个答案:

没有答案