В основном пытается сделать
{% url dynamic_url_name dynamic_parameter_name=dynamic_parameter_value %}
Попробовал простейший подход
<a href="{% url belongs_to belongs_to_url_arg=entry|getattribute:belongs_to_url_arg_value %}">{{entry}}</a>
{% include 'mainsite/children/title_template.html' with
the_title=title_text
is_title_page=True
entries_of="title"
belongs_to="profile"
belongs_to_url_arg="user"
belongs_to_url_arg_value="author"
%}
Но, к сожалению, это привело к полному отказу ![enter image description here](https://i.stack.imgur.com/dI5lv.png)
Из этого я могу сказать, что параметры не могут быть переменными контекста, поэтому я могу попытаться просто распаковать словарь, как я делал бы внутри python с чем-то вроде
{% url **{dynamic_parameter_name:dynamic_parameter_value} %}
Но я понятия не имею, возможно ли это внутри шаблонов django, и если возможно, как?
Мои URL выглядят как
re_path(r'^title/(?P<title_text>[a-zA-Z0-9-]+)/$', TitlePage.as_view(), name='title')
re_path(r'^user/(?P<user>[a-zA-Z0-9-]+)/$', ProfilePage.as_view() ,name='profile')
И я выбираю URL либопеременная контекста или тег включения, следовательно, это переменная.
{% url url_variable xxx=value %}
Теперь url_variable уже является частью django, а тег url принимает переменную в качестве первого аргумента.Но xxx
не всегда одинаков, скорее он меняется в соответствии с url_variable
, в данном конкретном случае;если url_variable
является заголовком, я хочу, чтобы xxx
было title_text
, а если это профиль, я хочу, чтобы оно было user
.Имя параметра хранится в belongs_to
, поэтому, если бы это была обычная функция python, я мог бы просто сделать
url(url_variable, **{belongs_to: value})
, и он распаковал бы его с правильным именем параметра.Так что мне нужна какая-то эквивалентность этого в процессоре шаблонов