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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Django - 学习目录

Django初识

Django之路

Django系列

django 错误

mac电脑安装django ,运行django报错解决