Сайт администратора на Python со сквозным параметром

У меня была следующая модель

class UserGroup(models.Model):
    name = models.CharField(max_length=255, unique=True)
    users = models.ManyToManyField(User, blank=True)

    def __str__(self):
        return self.name

С моим Admin.py ниже, набор запросов работал на 100% (в основном показывая только пользователей в текущей группе и пользователей, не входящих в группу вообще )

class UserGroupAdmin(admin.ModelAdmin):
    filter_horizontal = ('users',)

    def formfield_for_manytomany(self, db_field, request=None, **kwargs):
        if db_field.name == 'users':
            object_id = request.resolver_match.kwargs.get('object_id')
            kwargs['queryset'] = User.objects.filter(
                Q(usergroup=None) | Q(usergroup=object_id)
            )
        return super().formfield_for_manytomany(db_field, request, **kwargs)

admin.site.register(UserGroup, UserGroupAdmin)

Вывод выглядел следующим образом

enter image description here

Это было замечательно, но я изменил свою модель, чтобы использовать параметр Through ниже.

class UserGroup(models.Model):
    name = models.CharField(max_length=255, unique=True)
    users = models.ManyToManyField(User, blank=True, through='UserToUserGroup')

    def __str__(self):
        return self.name

class UserToUserGroup(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT)
    user_group = models.ForeignKey(UserGroup, on_delete=models.CASCADE)

Теперь мой администраторский сайт выглядит так, как показано ниже.

enter image description here

Мне трудно добиться того, чтобы сайт администратора выглядел так же, как после внесения изменений в модель. Я все еще привыкаю к работе с сайтом администратора. Я попробовал несколько инлайнов, но безуспешно. Мне нужно использовать горизонтальный фильтр, чтобы он выглядел одинаково.

Вернуться на верх