创建用户帐户后模板的奇怪行为

时间:2013-03-21 18:33:35

标签: python html django

所以我有一个索引页面,用于检查用户是否经过身份验证,如果经过身份验证,则将其重定向到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>

NOTHING显示的不是我已经呈现的HTML。我已经尝试重启服务器以达到同样的效果。我也尝试添加更简单的东西,比如

<div>wtf</div>

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

1 个答案:

答案 0 :(得分:2)

猜测一下,你应该关闭它:

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

看起来像这样:

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

可能的原因:在输入关闭之前,浏览器将所有内容解释为“输入标记内部”的一部分,它从不渲染,因为它从未关闭。

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