Как я могу конкатенировать строки в шаблоне Django?

Я пытаюсь локализовать компонент с помощью get_current_language и мне нужно передать код языка внутри фильтра:

{% get_current_language as LANGUAGE_CODE %}

{{ field|set_data:'flatpickr:{"locale": LANGUAGE_CODE}' }}

но set_data аргументом является строка. Как я могу этого добиться?

Я решил проблему с помощью простого тега и передал результат в качестве аргумента в set_data.

@register.simple_tag()
def get_flatpickr_data(data, **kwargs):
    args = data.replace(" ", "").split(",")
    data_string = ", ".join(args + [f'"{k}":"{v}"' for k, v in kwargs.items()])
    return 'flatpickr:{' + data_string + '}'

Затем в шаблоне:

{% load i18n %}
{% load widget_tweaks %}
{% load form_tags %}

{% get_current_language as LANGUAGE_CODE %}
{% get_flatpickr_data '"altInput":true, "altFormat": "d/m/Y", "allowInput":true' locale=LANGUAGE_CODE as data %}
<div class="form-group">
  <!-- Label -->
  {% if show_label %}
    <label class="form-label" for="{{ field.id_for_label }}">
      {{ field.label }}
    </label>
  {% endif %}
  <!-- Input -->
  {{ field|add_class:"form-control"|add_error_class:"is-invalid"|set_data:data }}
  <!-- Validation feedback -->
  {% if field.errors %}
    <div class="invalid-feedback">
      {{ field.errors }}
    </div>
  {% endif %}
</div>

Вернуться на верх