Как динамически выбирать поля для Modelforms Django - PullRequest
0 голосов
/ 31 октября 2018

Я хочу, чтобы в форме были определенные поля в зависимости от условия. Модель предварительно определена следующим образом:

class DumUser(models.Model):
    f1 = models.CharField(max_length=100,null=True)
    f2 = models.CharField(max_length=20,null=True)
    f3 = models.CharField(max_length=3,null=True)
    f4 = models.DateField(null=True)
    f3 = models.CharField(max_length=3, null=True)
    f4 = models.DateField(null=True)

Допустим, строка NULL добавляется в таблицу DumUser при создании пользователя (пока игнорируйте ограничения внешнего ключа.)

В данный момент для некоторой обработки мне нужны f1, f2 и f3 [это определяется динамически во время текущего сеанса]. База данных уже имеет значения f1 и f2. Поэтому я хочу, чтобы в форме отображались редактируемые и обязательные поля f1, f2 и f3, а f1 и f2 отображают значение уже в базе данных.

Если значения f1 и f2 изменены, они должны быть отражены в базе данных вместе с вновь полученным f3. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете передать ключевой аргумент 'fields' в функцию modelform_factory , которая задает, какие поля будет содержать результирующая форма. Если вы не можете использовать фабрику, вы можете изменить атрибут fields экземпляра формы после __init__ (атрибут не существует до вызова super().__init__()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...