Django request.user.first_name 在 Safari 中不起作用
Posted
技术标签:
【中文标题】Django request.user.first_name 在 Safari 中不起作用【英文标题】:Django request.user.first_name not working in Safari 【发布时间】:2021-08-29 20:01:43 【问题描述】:在 Django 的 html 页面上使用的代码 request.user.first_name 在 Chrome 中完美运行。但是,它在 Safari 中不起作用,并且什么也不显示。
有没有其他方法可以解决这个问题或者我该如何解决这个问题?
不使用 Safari 不是一个选项,因为使用 Safari 的人会使用这个网络应用程序。
编辑:
最小可重用示例:
base.html
<span class="user">
% if request.user.is_authenticated %
Hello request.user.first_name ,
<a href="% url "logout" %">Logout</a>
% else %
<a href="% url "login" %">Log-in</a>
% endif %
</span>
它在 Chrome 上的外观:
Safari:
【问题讨论】:
请提供minimal reproducible example。无论如何,我看不到浏览器会如何影响这一点,Django 在 服务器端 ... 我添加了图片和代码sn-p。 您在 Safari 中的用户是否拥有名设置?我再次重申,浏览器在这里应该没有区别(除非它与 CSS 相关,因为在你的两个图像中都呈现了“Hello”),因为 Django 在服务器端工作。您提供的示例不会重现问题。 两种情况下都是同一个用户。我知道两者之间应该没有区别。与网站的源代码(从浏览器端看)一样,它曾经有字符串“tom”,但在 Safari 中没有。给定 Django 的结构,很难提供一个最小的可重现示例。我基本上需要用数据库上传整个项目。 docs.djangoproject.com/en/3.2/topics/cache/#using-vary-headers 可能会有所帮助 【参考方案1】:我假设您在 Safari 中使用其他用户登录,该用户在 first_name 中没有值。
请仔细检查您登录时使用的用户名是否有效。
【讨论】:
我是个白痴,网站还在缓存中。以上是关于Django request.user.first_name 在 Safari 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章