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 могут не использовать этот метод и считать, что вместо него работает дефис. Хотя, вероятно, большинство таких пакетов действительно можно исправить, это потребует много работы.