假设我在我的一个视图中实例化一个Django表单,并且可以有条件地为它提供初始数据。本着“不重复我自己”的精神,我想首先构建表格,然后将这些信息传递给表格。我喜欢做的事情看起来像:
form = ThisForm()
if initial_data_element:
initial_data = {
'element': initial_data_element,
}
form.initial.update(initial_data)
什么是次优的,但仍然回答我的问题,将是看起来像:
form = ThisForm()
if initial_data_element:
form.fields['element'].initial = initial_data_element
我无法在文档或其他有关表单的问题中找到类似的内容,这使我怀疑有一种不同的方式可以处理这类问题。现在我可能会以__init__
方式处理它,但我认为我更倾向于在视图中遵循它的构造。
值得一提的是我想要这样做的原因:我使用初始化为None
的变量的传统方法是覆盖我的ModelForm中的实例数据,而我&#39 ; d非常希望有一个更强大的解决方案。
我的问题:如果实际上甚至可能将初始数据应用于已经实例化的表单,建议的方法是什么?