Я не думаю, что есть простой способ сделать это, но вот один из подходов, который может помочь.
Мезонин ищет параметр FORMS_EXTRA_WIDGETS
, который можно использовать для определения пользовательских виджетов. Как это работает лучше всего понять из кода .
Определенные здесь виджеты - это то, что используется для визуализации встроенных форм редактора, поэтому вы должны иметь возможность предоставлять свои собственные. Нет способа предоставить аргументы инициализации для виджета, поэтому вам нужно будет создать подкласс по умолчанию SelectDateWidget
и переопределить его __init__
метод, что-то вроде:
class CustomSelectDateWidget(SelectDateWidget):
def __init__(self, attrs=None, years=None, months=None, empty_label=None):
years = [2017, 2018, 2019] # Provide your list of years here
super().__init__(attrs, years, months, empty_label)
А затем передайте этот пользовательский виджет в настройку:
from mezzanine.forms.fields import DATE
FORMS_EXTRA_WIDGETS = [
(DATE, 'dotted.path.to.CustomSelectDateWidget')
]
Очевидно, это заменит использование виджета для всех полей даты во всех формах, представленных мезонином. Я не вижу способа сделать это специально для одного поля без переписывания большого количества логики встроенного редактора.