Динамические значения выпадающего списка (models.CharField с выбором) в зависимости от другого значения выбора выпадающего списка в Django Admin Panel

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


class Client(models.Model):
        name = models.CharField(max_length=150)
        
        def __str__(self):
                return str(self.name)


class Team(models.Model):
        name = models.CharField(max_length=150)
        description = models.TextField()
        members = models.ManyToManyField(User, through='Membership')
        clients = models.ManyToManyField(Client)
        
        def __str__(self):
                return self.name

class Membership(models.Model):
        member = models.ForeignKey(User, on_delete=CASCADE)
        team = models.ForeignKey(Team, on_delete=CASCADE)
        role = models.CharField(max_length=15, choices=roles, default='member')
        clients = models.CharField()  <--- there is problem
        
        def __str__(self):
                return str(self.member)


В организации есть много команд. У каждой команды есть клиенты, иногда клиенты являются частью нескольких команд. Пользователь может быть частью нескольких команд с различными ролями. Например: Пользователь в команде 1 имеет роль администратора и доступ ко всем клиентам команды 1, но также пользователь имеет роль обычного члена в команде 2 и имеет доступ только к нескольким клиентам команды 2.

<<<Отношения между пользователем и командой определяются в Членстве, где суперпользователь всего приложения может давать разрешения/доступ команде и указанным клиентам этой команды.

Итак, я хотел сделать динамическое поле клиентов в модели Membership. Создавая Membership, если я выбираю команду1, я хочу иметь возможность выбирать клиентов только из списка клиентов, назначенных этой команде.

Можете ли Вы, пожалуйста, помочь мне с этим?

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