如何将初始数据强制转换为instanciated django ModelForm?

时间:2013-04-14 21:54:11

标签: django django-forms

我有一个表格如下:

user = get_user_model().get(...)
f = forms.UserForm(instance=user, initial={"username":"whatever"})

但是在渲染时,不显示初始数据,用户模型中包含的数据似乎具有优先权。

无论模型中写入了什么,如何强制初始数据显示在表单中?

2 个答案:

答案 0 :(得分:1)

我知道这是旧的,我不知道这是否正是您所要求的,但这可能对其他人有所帮助:

class UserForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        kwargs['initial'] = {'username': 'whatever'}  # Override instance initial
        super().__init__(*args, **kwargs)

答案 1 :(得分:0)

在将user实例传递给表单之前,只需更改它即可。除非您明确致电user.save(),否则不会保存数据。