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
показывал только те флаеры, которые доступны для сервера, на котором пользователь публикует сообщение?