Python ';集团';对象没有属性';用户集';
因为默认的django管理组表单没有用于选择组中用户的字段。我写下了一些代码,我在网上添加了“选定用户”字段。一切正常。在我尝试保存我创建的组表单之前,我遇到了以下错误“group”对象没有属性“user\u set”Python ';集团';对象没有属性';用户集';,python,django,Python,Django,因为默认的django管理组表单没有用于选择组中用户的字段。我写下了一些代码,我在网上添加了“选定用户”字段。一切正常。在我尝试保存我创建的组表单之前,我遇到了以下错误“group”对象没有属性“user\u set” class GroupAdminForm(forms.ModelForm): class Meta: model=group exclude=[] users=forms.ModelMultipleChoiceField(query
class GroupAdminForm(forms.ModelForm):
class Meta:
model=group
exclude=[]
users=forms.ModelMultipleChoiceField(queryset=User,objects.all(),widget=FilteredSelectMultiple('users',False),required=False)
def __int__(self,*args,**kwargs):
super(GroupAdminForm,self).__int__(*args,**kwargs)
if self.instance.pk:
self.fields['users'].initial=self.instance.user_set.all()
def save_m2m(self):
self.instance.user_set.set(self.cleaned_data['users'])
def save(self,*args,*kwargs):
instance= super(GroupAdminForm,self).save()
self.save_m2m()
return instance
我收到此错误“Group”对象没有属性“user\u set”。我不知道如何着手解决这个问题。请帮忙。我是django的海军。请帮助处理以下问题后,我个人的错误是,我的CustomUserAdmin(UserAdmin)中有一个“添加表单”,该表单引用了组管理员表单 要扩展,我的原始代码如下所示:
类CustomUserAdmin(UserAdmin):
这就是罪魁祸首
模型=自定义用户
排序=(‘发布日期’,)
...
我发现GroupAdmin
表单:
class GroupAdmin(admin.ModelAdmin):
form = GroupAdminForm
def save_model(self, request, obj, form, change):
super(GroupAdmin, self).save_model(request, obj, form, change)
if 'users' in form.cleaned_data:
form.instance.user_set.set(form.cleaned_data['users'])
应仅附加到“组”模型,而不是用户模型。因此,我不断地得到上面的错误
简单地删除问题代码,然后按照Ekad的“更新”答案解决了我的问题
对于像我这样的初学者,我可以通过在Django中设置断点来调试它,我发现self.instance
是一个“{Group}”。既然如此,我为什么要在扩展用户模型中添加与组相关的表单呢
这对于经验丰富的开发人员来说当然是最基本的,但是对于我来说,正是这个难以捕捉的错误导致了这个bug