Автоматическое заполнение полей формы в методе clean()

Я использую модельную форму для редактирования записей в БД.

У меня есть бизнес-логика для автозаполнения атрибутов, которое должно происходить после прохождения проверки некоторых бизнес-правил.

В некоторых случаях автозаполнение основывается как на исходных значениях атрибутов экземпляра, так и на текущих значениях полей формы. Например, разные правила применяются независимо от того, изменялся ли какой-то атрибут или нет.

Примечание: У меня нет таких случаев, когда автозаполнение основано на других моделях, кроме той, на которой основана модель формы.

Итак, мой вопрос: Правильно ли автозаполнение атрибутов в методе form clean()?

Прочитав несколько различных источников, я не уверен, что до конца понял, допустимо ли это, и если да, то в каких случаях.

Несколько слов о том, почему мне не удобно разделять валидацию и автозаполнение:

Мое дело в том, что у меня есть довольно сложные правила валидации и почти каждый раз, когда эти правила пройдены, мне нужно сделать некоторое автозаполнение. На данный момент у меня есть 2 метода, один в методе form clean() для валидации и один в методе form save() для автозаполнения. Каждый раз, когда мне нужно изменить бизнес-правила, я должен вносить изменения в оба этих метода. Это не очень удобно и, кроме того, может привести к замедлению потока "валидация-сохранение" (возможно, незначительному, но все же).

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