首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在init上创建django表单

在init上创建django表单
EN

Stack Overflow用户
提问于 2010-04-08 20:47:27
回答 1查看 21.4K关注 0票数 22

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

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类的正下方...行,但我希望这是动态的,这取决于传入的用户,所以不能这样做。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-08 21:24:19

只需切换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
票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2599893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档