Сложный сетевой администратор Inline

У меня есть сложная модель, в которой плейлисты могут быть созданы на двух уровнях: UserGroup и User.
Далее, эти плейлисты нацелены на определенный будний день.
Таким образом, Users/UserGroups могут иметь отдельные плейлисты для каждого дня недели.
Чтобы управлять пользовательскими плейлистами в админке, я хочу добавить User и UserGroup строку всех дней недели, а под каждым днем недели строку всех песен (для этого дня недели). Надеюсь, приведенное ниже изображение немного прояснит ситуацию.
Чтобы добавить путаницы, песни для определенного дня недели должны включать как User песни, так и UserGroup песни.

Django Admin

Мои модели:

UserGroup
    name = models.CharField(max_length=255)

User
    name = models.CharField(max_length=255)
    
UserGroupSong
    file = models.FileField()
    weekday = models.ForeignKey(Weekday, on_delete=models.PROTECT)
    user_group = models.ForeignKey(UserGroup, on_delete=models.PROTECT)

UserSong
    file = models.FileField()
    weekday = models.ForeignKey(Weekday, on_delete=models.PROTECT)
    user = models.ForeignKey(User, on_delete=models.PROTECT)
    inherit = models.BooleanField(verbose_name='Include songs from user-group for this weekday?')

class Weekday(models.Model):
    day = models.CharField(max_length=255)
    # Pre-populated with values: Sun, Mon, Tue, Wed, Thu, Fri, Sat

Любая помощь будет высоко оценена.

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