我偶然发现了一个非常奇怪的问题。开发环境是Django 1.10& django-cms 3.4.4。当我尝试在Chrome和Linux中加载localhost时Firefox一切正常,但是如果我尝试在Safari中打开它,它会在 NoReverseMatch at 时失败并且随机网址失败。我也试过
curl http://localhost:8000/
它工作正常。 也尝试在Windows和不同的浏览器上,它失败了一些具有相同错误的浏览器。 有人知道可能是什么问题吗? 谢谢!
P.S。
Reverse for 'model' with arguments '(u'bmw',)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
它似乎根本没有加载任何网址。 尝试了0个模式表示我猜没有加载任何内容?
答案 0 :(得分:1)
我想我找到了它。长话短说
默认cms配置为使用英语作为主要语言,但我希望我的主要语言是保加利亚语。我将CMS配置为支持这两种语言,并且我将保加利亚语设为默认语言并禁用英语。然后我删除了i18n_patterns()
中的urls.py
包装器,以摆脱/en/
/bg/
等前缀。到现在为止还挺好。管理网站效果很好。只有一种语言 - 保加利亚语,附有页面和自定义应用程序。当我在Safari上加载错误网址的前端只是为了查看所有支持的网址时,我看不到任何附加的应用程序和网址。如果我对Chrome也这样做 - 它会显示所有附加应用程序的网址。事实证明,Chrome加载了保加利亚语页面配置和所有已配置的应用程序,但是Safari会加载已禁用的英语页面,并且没有附加的应用程序。
我的第一个猜测是Accept-Language标头。 Safari使用Accept-Language: en
,但其他浏览器发送bg。我试图篡改数据,但什么都没发生。然后我注意到django_language
正在使用LocaleMiddleware
cookie来实际确定语言。当我禁用中间件时,一切都像魅力一样。
谢谢!