maxclax
@maxclax

Как реалезовать динамическую проверку поля модели в Django?

В моделе имею поля:

# платежная система, на которую персона запросила вывод средств
eps = models.ForeignKey(EPS, verbose_name='Куда')

# номер счета, на который персона запросила вывод
account = models.CharField(verbose_name="На счет", max_length=50,
                               validators=[RegexValidator(eps.account_PCRE, message=_('Неверный формат счета'))]
    )


В моделе eps есть поле account_PCRE в котором указана регулярка для проверке счета.

При подходе выше получаю ошибку:
validators=[RegexValidator(eps.account_PCRE, message=_('Неверный формат счета'))]
AttributeError: 'ForeignKey' object has no attribute 'account_PCRE'


Мне необходимо динамически, в зависимости от получаемой eps подставить с нее регулярку для проверки account.
Сама форма в таком виде:

class WithdrawalsForm(forms.ModelForm):
    class Meta:
        model = Withdrawals
        fields = ['eps', 'account']
        widgets = {
            'account': forms.TextInput(attrs={'class': 'inputboxsmall', 'data-inputmask': ''})
        }


Не пойму как верно получить результат? Может необходимо в самой форме проверку делать, но так будет дублирован код в других формах. Может во вьюху вынести, будет дубляж кода. Подскажите какие есть варианты.
  • Вопрос задан
  • 2492 просмотра
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
Можно рейзить нужный ValidationError в методе clean в самой модели:

https://docs.djangoproject.com/en/1.6/ref/models/i...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы