Существует два способа заполнения формы Django.
Первый - передать словарь в качестве первого аргумента, когда вы создаете его экземпляр (или передать его как data
kwarg, что тоже самое). Это то, что вы делаете, когда хотите использовать данные POST для заполнения и проверки формы.
data_dict = {'charfield1': 'data1', 'charfield2': 'data2', 'choicefield': 3}
form = MyForm(data_dict)
Однако это приведет к проверке в форме, поэтому работает только в том случае, если вы фактически передаете действительные и полные данные для начала - в противном случае вы начнете с ошибок.
Другим способом заполнения формы является использование параметра initial
(задокументировано здесь ). Это дает начальные значения для полей формы, но не запускает проверку. Поэтому это подходит, если вы не заполняете все значения, например.
form = MyForm(initial=data_dict)
Чтобы заполнить поле выбора с помощью initial
, используйте значение pk.