0

我正在尝试使用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 初学者提供任何建议,我将不胜感激:)

4

0 回答 0