所以我有一个索引页面,用于检查用户是否经过身份验证,如果经过身份验证,则将其重定向到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路由等)似乎工作正常时,为什么模板引擎没有注册我的新更改?
答案 0 :(得分:2)
猜测一下,你应该关闭它:
<input type="submit" value="Log Out"
看起来像这样:
<input type="submit" value="Log Out" />
可能的原因:在输入关闭之前,浏览器将所有内容解释为“输入标记内部”的一部分,它从不渲染,因为它从未关闭。
无论如何:确保您的HTML有效。