繁体   English   中英

Django翻译指向错误的URL

Django translate refers to wrong URL

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在其中一个项目中使用Django(版本2.1.3),目前正遇到一个奇怪的错误。 我使用国际化内置模块,并在主菜单中包含一个语言切换器,该语言切换器加载在每个页面上

{% get_current_language as LANGUAGE_CODE %}
<form id="form" action="{% url 'set_language' %}" method="post">
     {% csrf_token %}
     <input name="next" type="hidden" value="{{ request.get_full_path|strip_lang }}" />
     <input id="form_lang" name="language" type="hidden" value="{{ LANGUAGE_CODE }}"/>
</form>
<ul role="menu" class="dropdown-menu"id="lang-dropdown">
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
     <li>
          <a href="#" onClick='(function(){                                              
               document.getElementById("form_lang").value = "{{ language.code }}";                                                    
               document.getElementById("form").submit(); return false;})();return false;'>
          {{ language.name_local }} ({{ language.code }})</a>
     </li>
{% endfor %}
</ul>

我创建了一个特殊标签“ strip_lang”以从当前URL中剥离语言标识符。

@register.filter
@stringfilter
def strip_lang(value):
    """Removes all values of arg from the given string"""
    lang = getattr(settings, "LANGUAGES", None)
    url = value.split('/')
    if url[1] in [l[0] for l in lang]:
        return urllib.parse.unquote('/' + '/'.join(value.split('/')[2:]))
    else:
        return urllib.parse.unquote(value)

这一切都很好。 但是,对于我的一个应用程序,我总是被重新路由到另一个应用程序。 即如果我在路上

 /en/app1/mypage1 

并切换我突然变成的语言

 /fr/app2/mypage1

*****编辑*****

app2的引荐正常工作。 手动输入app1的URL时,页面将正确加载。

我在主项目中的url.py看起来像这样

urlpatterns = [
    path('admin/', admin.site.urls),
    path('i18n/', include('django.conf.urls.i18n')),
    ]
urlpatterns += i18n_patterns(
    path('app1/', include('app1.urls')),
    path('app2/', include('app2.urls')),
    path('app3/', include('app3.urls')),
    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
    url(r'^login/$', auth_views.LoginView.as_view(), {'template_name': 'login.html'}, name='login'),
    url(r'^logout/$', auth_views.LogoutView.as_view(), {'template_name': 'logged_out.html'}, name='logout'),
    url(r'^oauth/', include('social_django.urls', namespace='social')),
prefix_default_language=False)

我的应用程序的ans urls.py看起来像这样

urlpatterns = [
    path('', views.index, name='index'),
    path('surveys/', views.nrgt_surveys, name='nrgt_surveys'),
    path('surveys/<str:survey_name>/', views.survey, name='survey'),
    path('surveys/<str:survey_name>/<query_name>', views.survey_query, name='survey_query'),
    path('landscapes/', views.landscapes, name='landscapes'),
    path('landscapes/<str:landscape_name>/', views.landscape, name='landscape'),
    path('landscapes/<str:landscape_name>/<query_name>', views.landscape_query, name='landscape_query'),
]

我没有在代码中的任何地方指定应用程序名称。 跟踪网络请求时,我还可以看到在POST请求中提交了正确的URL。 为什么我的网址被修改了?

问题暂未有回复.您可以查看右边的相关问题.
1 Django翻译:翻译URL

我使用启用翻译的Django 1.11。 我的URL以语言代码开头,例如“ / en / tickets /”或“ / cs / tickets /”。 我需要解决以下问题:我有某种语言的URL(可以是我正在使用的任何URL- settings.LANGUAGES中的那些URL),我需要将其 ...

2 设置 Django 翻译的 URL

我有两个标志图标,我愿意为它们提供 URL 来确定应该使用 Django 翻译显示哪种语言。 不过,我对此有点困惑。 我怎么能做这样的事情? 更具体地说,当客户点击伊朗国旗时,URL 中的语言前缀应更改为“fa-ir”( www.domain.com/fa-ir/products ) HTML: ...

3 Django 表单错误翻译

嗨,我做简单的界面来添加带有作者姓名的消息。 它有两个字段,一个是名称,第二个是消息。 我的函数 сheks form.is_valid() 如果为真,则将元素添加到数据库中,否则我会呈现带有错误表单和消息“此字段是必需的”的模板。 出现了。 这么少的代码行导致这个结果,这很酷。 但我的用户不会说英 ...

4 Django翻译makemessage错误

我正在创建Django多语言网站。 Settings.py 模板: 网址: 意见: 因此,使用python makemessage -l de命令,我得到了下一个错误: 我认为我设置的网址不正确。 关于它的所有答案都至少为3-4岁,在最新的Djan ...

5 链接指向错误的URL

我有一个多语言网站,当我将语言更改为kz并单击新闻链接时,URL转到mysite.com/ru/news,如何使kz中的链接转到mysite.com/kz/news ? 链接在model_press.php文件中形成 controller_press.php文件 有些链接可以正常工作,例 ...

2020-04-20 06:14:58 0 28   php
6 Django:网址翻译错误

我有以下翻译: 但是,我总是得到错误的URL: http : //127.0.0.1 : 8000/admin/everett-vega-and-davis/survey-test/settings/%E2%80%9C/admin/everett-vega-and-戴维斯/设置/%E2% ...

7 翻译内置的Django验证错误

如何翻译由Django自动生成的验证错误? 我看到当用户尝试添加无效的用户名时,不会翻译“验证”错误。 有没有办法标记翻译的内置验证错误? 目前,我的错误是通过验证使用内置User模型生成的表单生成的。 ...

9 Django指向错误的Postgres版本

我通过删除Postgres.app桌面应用程序将Postgres.app从9.6降级到9.5。 我通过执行更新数据库 (我通过下载Postgres.app桌面应用程序下载了Postgres,并通过pip install Django安装了Django) 看起来它是从正确的目录启动 ...

10 指向Django而不是nginx的静态文件URL

我正在尝试使用nginx为我的Django应用提供静态文件。 我正在遵循本指南 ,他们在其中建议以下nginx配置文件: 在我的settings.py中,我有以下声明: 我可以在以下形式的网址中看到静态文件: 但是,当尝试使用{%static%}标签引用模板中的静态 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM