Заполните данные формы в CreateView с помощью get_initial () из модели - PullRequest
0 голосов
/ 02 мая 2020

Я хочу создать форму, где люди могут выбрать «шаблон», который предварительно заполнить форму. Шаблон представляет собой другую модель с такими же полями. Например, у меня есть AbstractArticle и TemplateArticle и RealArticle с той же структурой.

Я пытаюсь использовать get_initial (), чтобы получить форму, но это требует только dict, и это странно, потому что форма довольно сложная (Я не могу заставить его работать с выпадающим списком).

Есть ли способ предоставить экземпляр модели в качестве исходных данных?

1 Ответ

0 голосов
/ 02 мая 2020

Не смотря на ваш реальный код и то, что вы пробовали, я немного растерялся, но, возможно, этот пост answer - это то, что вы ищете. Сделав немного изменений в этом ответе, я могу дать вам следующее:

def __init__(self, *args, **kwargs):
    initial = super(MyFormView, self).__init__(*args, **kwargs)
    self.temp_mod = kwargs.pop('template_model_id')
    template_model = TemplateModel.objects.get(id=temp_mod)
    # update initial field defaults with custom set default values:
    initial.update(
        {'field1': template_model.data1, 
         'field2': template_model.data2})
    return initial

Не проверено

Идея в том, чтобы получить идентификатор модели шаблона из kwargs, получить объект и затем заполнить информацию в initial.update в соответствующие поля.

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