【发布时间】:2015-03-04 14:51:23
【问题描述】:
在回复 Django 教程答案之前,请仔细阅读。
我想将Hello, {{ request.user.username }} 放入模板中,如果没有用户登录,它应该返回“Hello, Anonymous”。不是“你好”。
想象一下当这个测试用例失败时我的惊讶:
def test_hello_Anon(self):
assert 'Anonymous' == auth.models.AnonymousUser().username
有人知道怎么通过吗?最好不要覆盖和重新注册AnonymousUser 类??
我问是因为if 陈述是邪恶的。
【问题讨论】:
-
您是否考虑过使用自定义上下文处理器?
-
我不知道我是否错过了文件范围内像
auth.model.AnonymousUser.username = "anon"这样简单的东西。我考虑了一个自定义处理器,这就是为什么我添加了“没有覆盖和重新注册”。 -
基本上,我会建议使用自定义上下文处理器来隐藏模板过滤器,而不是使用 Daniel 的示例,因此您的模板代码只是
{{ username }}等,它不会覆盖任何内容。跨度> -
请注意我请求帮助通过的测试。
-
我没有关注如何利用
default过滤器使您的测试用例通过...
标签: django django-models django-authentication