gpt4 book ai didi

django - 在init上创建Django表单

转载 作者:行者123 更新时间:2023-12-03 11:51:04 25 4
gpt4 key购买 nike

如何在表单初始化函数中添加字段?例如在下面的代码中,我想添加一个配置文件字段。

class StaffForm(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
if user.pk == 1:
self.fields['profile'] = forms.CharField(max_length=200)

super(StaffForm, self).__init__(*args, **kwargs)

class Meta:
model = Staff

我知道我可以将其添加到类StaffForm ....行的下面,但是我希望它根据输入的用户是动态的,因此不能以这种方式进行。

谢谢

最佳答案

只需切换init函数,以便在添加更多字段之前调用super。

class StaffForm(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
super(StaffForm, self).__init__(*args, **kwargs)

if user.pk == 1:
self.fields['profile'] = forms.CharField(max_length=200)
self.fields['profile'].initial = 'whatever you want'
class Meta:
model = Staff

关于django - 在init上创建Django表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2599893/

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