Django - изменение разделителя префиксов форм

Я использую форму prefix для того, чтобы дважды отобразить одну и ту же форму django в одном шаблоне и избежать идентичных id полей.

Когда вы это делаете, разделитель между префиксом и именем поля имеет значение '-', я бы хотел, чтобы вместо него было '_'.

Возможно ли это?

Спасибо

You could "monkey patch" [wiki] the BaseForm code, for example in some AppConfig:

# app_name/config.py

from django.apps import AppConfig


class MyAppConfig(AppConfig):
    def ready(self):
        from django.forms.forms import BaseForm

        def add_prefix(self, field_name):
            return f'{self.prefix}_{field_name}' if self.prefix else field_name

        BaseForm.add_prefix = add_prefix

Но я бы посоветовал не делать этого. Обычно в этом случае генерируются правильные префиксы с подчеркиванием. Но некоторые приложения Django или некоторые логические схемы в самом проекте Django могут не использовать этот метод и считать, что вместо него работает дефис. Хотя, вероятно, большинство таких пакетов действительно можно исправить, это потребует много работы.

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