当前位置:  开发笔记 > 编程语言 > 正文

Django ModelForm覆盖__init__

如何解决《DjangoModelForm覆盖__init__》经验,为你挑选了0个好方法。

我正在尝试使用当前用户所属的Django组填充ModelForm的Select列表。

没有错误出现,但是我只有一个空的选择列表。

这是我的代码:

class ArchiveForm(forms.ModelForm):

    class Meta:
        model = Archive
        fields = ['tags', 'version', 'sharegp']
        localized_fields = None
        labels = {'tags': 'Related Keywords'}


    sharegp = forms.ChoiceField(label='Share with groups')

    def __init__(self, user, *args, **kwargs):

        #import pudb;pudb.set_trace()
        self.user = user
        super(ArchiveForm, self).__init__(*args, **kwargs)
        self.fields['sharegp'].queryset = Group.objects.filter(user=self.user)
        self.fields['sharegp'].widget.choices = self.fields['sharegp'].choices

请注意,如果我在方法的第一行中启用了调试器__init__,并沿函数前进,则该行:

    self.fields['sharegp'].queryset

提供正确的列表,其中包含该用户的组,但不会传递给实际表单。

我可能会缺少什么?谢谢!

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有