0

因此,我有一个索引页面,用于检查用户是否已通过身份验证,如果已通过身份验证,则将其重定向到workouts.html页面:

def index(request, auth_form=None, user_form=None):
    if request.user.is_authenticated():
        user = request.user
        context = {'user': user}
        template = 'workouts.html'
        return render(request, template, context)
    else:
        auth_form = auth_form or AuthenticateForm()
        user_form = user_form or UserCreateForm()
        template = 'index.html'
        context = {'auth_form': auth_form, 'user_form': user_form}
        return render(request, template, context)

还有登录/身份验证视图,但所有这些都很好。我遇到的问题是我编写了一个非常基本的模板页面workouts.html来测试经过身份验证的用户重定向:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <div>These are your workouts, {{ user.username }}.</div>
    </body>
</html>

我使用测试帐户登录。一切正常。但是,现在当我尝试添加额外的 html 时,例如注销表单:

<form action="/logout">
    <input type="submit" value="Log Out" />
</form>

除了我已经呈现的 HTML 之外,什么都没有显示。我已经尝试重新启动服务器以达到相同的效果。我还尝试添加一些更简单的东西,比如

<div>wtf</div>

除了初始消息外,什么都没有显示。如果我删除页面上的所有内容,我仍然会收到"These are your workouts, test1"消息。即使我手动注销用户,我也会收到相同的初始消息。当所有其他行为(表单身份验证、初始呈现、url 路由等)似乎工作正常时,为什么模板引擎没有注册我的新更改?

4

1 回答 1

2

大胆猜测,您应该关闭它:

     <input type="submit" value="Log Out"

它看起来像这样:

    <input type="submit" value="Log Out" />

可能的原因:在输入关闭之前,浏览器将所有内容解释为“输入标签内”的一部分,因为它从未关闭,所以它永远不会呈现。

无论如何:确保您的 HTML 有效。

于 2013-03-21T18:56:28.673 回答