Django - выбор между флаерами, предназначенными для сервера, на котором пользователь публикует сообщение

Я пытаюсь сделать приложение клон reddit, в котором каждый сервер имеет свой собственный набор flairs, которые пользователь может выбрать один из них при постинге на этом сервере.

Я сделал ServerFlairs модель:

class ServerFlairs(models.Model):
    server = models.ForeignKey(Server, on_delete=models.CASCADE, related_name='tags')
    name = models.CharField(max_length=20)
    primary_color = ColorField(default = '#ffff')
    secondary_color = ColorField(default = '#ffff')
    is_allowed = models.BooleanField(default=True)

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

Постовая модель:

class Post(models.Model):
    ...
    server = models.ForeignKey(Server, on_delete=models.CASCADE, related_name='posts')
    creator = models.ForeignKey(User , on_delete=models.CASCADE, related_name='posts', null=True)
    created = models.DateTimeField(auto_now=True)
    type = models.CharField(max_length=5, choices=post_type_choices, default='text')
    votes_count = models.IntegerField(default=0)

    #this shows all of the flairs from all servers not just the one that user is posting on
    post_flair = models.ForeignKey(ServerFlairs, on_delete=models.CASCADE , default=1)

Итак, как я могу изменить его так, чтобы post_flair показывал только те флаеры, которые доступны для сервера, на котором пользователь публикует сообщение?

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