我尝试使用current_user['id']获取当前用户id。即使我在模板中使用了TypeError: 'AnonymousUser' object has not attribute __getitem__,如果用户没有经过身份验证,我也会显示一条消息。在其他方法上,当我不使用current_user['id']时,如果用户没有经过身份验证,就会得到正确的消息。我为什么要犯这个错误?
是否有一种方法可以访问自定义上下文处理器中通过视图传递的当前上下文,以便在需要时添加缺少的变量,而不是覆盖现有变量?我想要达到的目标:
我构建了我的URL,类似于这个/ city _slug/,我想检查上下文中是否已经存在城市变量,否则我希望将city添加到我的上下文中(可能使用会话变量中存储的最后一个使用的城市,否则默认设置为某个城市,甚至可能设置为session变量供下次使用
不幸的是,Django在每次请求时都会自动删除消息--在这种情况下不是很有用。注意:不幸的是,下面的解决方案使管理界面无法使用。我不知道该怎么处理这件事,真的很烦人。编辑-找到了一个解决方案-使用自定义的auth上下文处理器调用user.message_set.all(),正如Alex建议的那样。使用此解决方案根本不需要更改应用程序代码。messages = user.message_set.all() from d