首页 > 解决方案 > 如何在 django 模板中包含翻译中的反向 url

问题描述

我有以下代码块,并且我想在用户注销后以可翻译的文本包含登录页面的 url。

不幸的是,翻译块不能包含标签,我收到以下错误:

SyntaxError:翻译块不得包含其他块标签:url“account:login”

{% blocktrans %}


You have been successfully logged out.


You can <a href="{% url "account:login" %}">log-in again</a>.


{% endblocktrans %}

网址.py:

from django.urls import path

from django.contrib.auth import views as auth_views



app_name = 'account'



urlpatterns = [

    path('login/', auth_views.LoginView.as_view(), name='login'),

    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

实现这样的目标的正确方法是什么?

编辑:我认为有一些解决方法,例如单独翻译文本块,或者在页面加载后使用 javascript 附加“href”元素。但我想知道是否有更有效的 Django 方式。

标签: pythondjango

解决方案


记录的

反向 URL 查找不能在 blocktrans 中执行,应事先检索(和存储):

{% url 'path.to.view' arg arg2 as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}

推荐阅读