Связь между моделями ManyToMany через промежуточную модель
Нужно построить связь между моделями ManyToMany
через промежуточную модель для рассылки писем
Делаю рассылку писем для подписчиков. Письма отправляются при добавлении нового поста. Не могу добраться от Post до Category (связь идет через PostCategory).
model.py:
class Post(models.Model):
postCategory = models.ManyToManyField(Category, through='PostCategory')
...
class PostCategory(models.Model):
postThrough = models.ForeignKey(Post, on_delete=models.CASCADE)
categoryThrough = models.ForeignKey(Category, on_delete=models.CASCADE)
class Category(models.Model):
name = models.CharField(max_length=64, unique=True)
subscribers = models.ManyToManyField(User, blank=True, related_name='subscription', verbose_name='Подписчики')
Сама рассылка:
@receiver(post_save, sender=Post)
def notify_users_post(sender, instance, created, **kwargs):
pass
В instance получаем созданный объект, в данном случае объект Post. Чтобы сделать рассылку, нужно получить id или названия категорий для данного поста. Далее перебираем подписчиков данных категорий и рассылаем им уведомления на почту.
Вопрос: как добраться до категории через instance? Пробовал варианты (неудачные):
category = instance.postCategory.name
category = instance.postCategory.id
category = instance.postCategory__name
category = instance.postCategory__id