Атрибут администратора django для переопределения error_message в мета-форме modelForm для Regex и переменных в строках Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Атрибут администратора django для переопределения error_message в мета-форме modelForm для Regex и переменных в строках

Сообщение Anonymous »

У меня есть несколько валидаторов, определенных в моей ModelForm в администраторе Django:

Код: Выделить всё

class AddressesAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(AddressesAdminForm, self).__init__(*args, **kwargs)
self.fields['unitorsuitenumber'].validators = [MinValueValidator(1), MaxValueValidator(1000)]
self.fields['streetaddress'].validators = [RegexValidator(regExAlphanumericSpacesCommasPeriods)]
В Meta для ModelForm я могу переопределить error_messages:

Код: Выделить всё

        error_messages = {
'unitorsuitenumber': {
'min_value': _('Ensure Unit/Suite Number value is at least %(limit_value)d ' +
'(Current value is %(show_value)d).'),
'max_value': _('Ensure Unit/Suite Number value is not more than %(limit_value)d ' +
'(Current value is %(show_value)d).'),
},
'streetaddress': {
'regexvalidator': _('Only numbers, letters, periods, spaces and dashes are allowed'),
},
}
Два вопроса:
  • Для валидатора RegEx ошибка msg не заменяется моим пользовательским. В валидаторах для минимальных и максимальных значений мне нужно указать min_value и max_value для атрибутов, чтобы переопределить сообщение. Но какой атрибут валидатора RegEx мне переопределить? Более того, как для любого данного валидатора я могу узнать правильный атрибут для переопределения error_message? Я хочу сделать это здесь, в Meta, а не где-то еще.
  • Я вижу, что для валидаторов MinValue и MaxValue мне доступны переменные в строке, %(limit_value)d и %(show_value)d. Я хотел бы знать, как узнать, какие переменные доступны мне для того или иного валидатора. И есть ли переменная, которую я могу использовать для verbose_name, например, %(verbose_name)d? Например, я мог бы заменить жестко закодированный номер блока/комнаты переменной, а затем сделать сообщение об ошибке общим.


Подробнее здесь: https://stackoverflow.com/questions/620 ... r-regex-an
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»