我正在尝试使用当前用户所属的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
提供正确的列表,其中包含该用户的组,但不会传递给实际表单。
我可能会缺少什么?谢谢!