我有一个模型IpList,其中包含用户组或仅包含简单用户。现在,我想以内联形式显示与用户相关的所有IpList。但是我不知道如何以那些内联形式显示相关组中的所有用户。这是我的模型:
class IpList(models.Model):
name = models.CharField(max_length=256, unique=True)
description = models.TextField(blank=True)
user = models.ManyToManyField(User, blank=True)
group = models.ManyToManyField(Group, blank=True)
例如,我有1个名为“ MyUser”的用户和1个名为“ MyGroup”的组,其中包含“ MyUser”。现在,我要创建2个IpList:带有“ MyUser”的“ ListOne”和带有“ MyGroup”的“ ListTwo”。
然后,我要进入用户“ MyUser”的内联表单,由于queryset,只有“ ListOne”。因此,问题是:如何扩展查询集或内联表单数据以在其中也显示“ ListTwo”(因为该列表也包含“ MyUser”,但具有组关系)?
我知道,添加/删除组后,我可以使用信号并在change_m2m中创建关系IpList-User,但我不想这样做。
这是我的UserAdmin:
class IpListInline(admin.TabularInline):
model = IpList.user.through
extra = 0
verbose_name = 'IP list'
verbose_name_plural = 'IP lists'
fields = ('name', 'description')
readonly_fields = ('name', 'description')
can_delete = False
class UserAdmin(BaseUserAdmin):
add_form = UserAdminAddForm
list_display = ('username',)
list_filter = ('is_staff', 'is_superuser', 'is_active',)
search_fields = ('username', 'first_name', 'last_name')
inlines = [IpListInline]
提前谢谢!