{%url%}标记在django中添加两次本地化前缀

时间:2012-09-04 21:12:10

标签: python django localization django-views url-routing

使用Django版本1.5.dev17942我有这个设置:

settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',

    #'maintenancemode.middleware.MaintenanceModeMiddleware',
)

使用urls.py:

urlpatterns = patterns('',
    # Api
    url(r'^api/bestSeller/', include('apps.pluginApi.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

urlpatterns += i18n_patterns('',
    # Core:
    url(r'^$', views.index, name='home'),
    url(r'teleport/signup/(?P<plan>\w+)', views.teleport_signup, name="teleportSignup"),
    url(r'teleport/account$', views.teleport_account, name="teleportAccount"),
    url(r'teleport/login$', views.teleport_login, name="teleportLogin"),
    url(r'teleport', views.teleport, name="teleport"),
)

urlpatterns += staticfiles_urlpatterns()

当我使用模板标签时:

{% url 'teleportSignup' 'teleportplan1' %}

我得到这个网址:

  

/ ES / ES /传送点/注册/ teleportplan1

注意两次“es”。初始URL(呈现页面)为/es/teleport

我看不出是什么原因造成的。或者如何避免..

1 个答案:

答案 0 :(得分:0)

真的很蠢。我在https://bitbucket.org/carljm/django-localeurl中依赖于旧项目。这也是生成区域设置网址的原因,所以有两次这样做的原因......