gpt4 book ai didi

django - 无法在绑定(bind)表单上初始化 ModelForm 字段?

转载 作者:行者123 更新时间:2023-12-04 00:44:09 25 4
gpt4 key购买 nike

当我尝试创建一个像

这样的 ModelForm 时
MyModelForm(instance=a_model_instance_)

似乎 Django 阻止了在表单的 __init__ 方法中对初始模型字段的任何设置,例如:

def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)

if self.instance.pk:
if self.instance.my_field:
my_field = self.instance.my_field
else:
# show parent's field instead
my_field = self.instance.parent.my_field

self.fields['my_field'].initial = my_field

在表单绑定(bind)到实例后,是否有任何原因导致在表单的 __init__ 方法中初始化字段不再起作用?

最佳答案

我想你想从其他模型字段值设置一个字段的初始值,如果它是 None 的话:

def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)

if self.instance.pk:
if not self.initial.get('my_field'):
self.initial['my_field'] = self.instance.parent.my_field

关于django - 无法在绑定(bind)表单上初始化 ModelForm 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com