я прохожу по этим топикам циклом, аля
{% for field in form.topics %}
{{ field}}
{% endfor %}
но мне нужно отсортировать эти топики в алфавитном порядке. Я сделал простой кастомный тэг, который выглядит как
def ..(topics):
return sorted(topics)
но когда я его применяю, мне выдает эксепшн, что нельзя итерироваться по BoundWidget. Так же пытался итерироваться по {% for .. form.topics.value %}
тоже не получилось, может кто-то сталкивался?
Чую, что у тебя где-то проблема с переменными или с пониманием. По формам не итерируюся (если это не формсеты)
чего?) у меня есть модель, где поле topics это M2M, сама в форме у меня поле topics выглядит так topics = LocalizedSiteNameModelMultipleChoiceField( queryset=Site.objects.all(), class LocalizedSiteNameModelMultipleChoiceField(forms.ModelMultipleChoiceField): def label_from_instance(self, obj): return obj.root_page.specific.localized.site_short_name
и там все окс итерируется, то есть в самом шаблоне, когда я итерируюсь по form.topics у меня все окс, все чекбосы есть и форма валидная
Погоди, т.е. чтобы вывести чекбоксы, ты их врукопашную создаёшь? Не использую виджет с чекбоксами?
есть он) просто чтоб весь код не копировать не вставлял
Тогда я не понимаю, зачем итерироваться?
чтобы стилизовать нормально чекбоксы
так стой, даже без этого, я не могу применить эту сортировку, вернее этот тег
Оке, это немного странное решение, но главное, что работает. Но я, как понимаю, увёл вопрос от самой проблемы)) что тут происходит def ..(topics): return sorted(topics) И что сюда передаётся параметром?
я изначально в самой форме в queryset передавал Site.all().order_by('name') ну условно так, и все отрабатывало хорошо на английском, а на французском алфавитного порядка не было, они отображались в том же порядке, что и на английском
Абстрактно тяжко выдумывать решение. Как реализована локализация?
у нас вообще wagtail, так что немного он на себя берет) там либа wagtail_localize есть, а так просто .mo .po файлы, делаешь makemessages, делаешь compilemessages и он отображает
сами эти топики, они все переводятся на уровне вагтейла, то есть я не оборачивал там ничего в тег translate и тд
Но топики и вагтейл с po и mo - это разные вещи гет_текст используется для “статичных данных”
Этого не может быть (наверное не может быть). Так как данные по локализации лежат в бд, а не в файлах po no
это же не статик данные, я их не переводил через геттехт
ну я всех тонкостей не знаю, спорить не буду
Ну и я гадать не стану, как там работает. Соответственно и помочь не смогу. Извини
Обсуждают сегодня