Фильтрация вариантов иностранных ключей в сериализаторе Django

У меня есть модель Django, которая выглядит как приведенный ниже код. На данный момент, когда я использую django rest framework для создания нового экземпляра меню, столбец блюда содержит варианты, созданные всеми пользователями платформы. Как я должен отфильтровать столбец блюд, чтобы в нем были только варианты, созданные пользователем? Должен ли я делать это в представлениях или сериализаторе?

Заранее благодарю за ответ.

class Dish(models.Model):
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True, blank=True)
    title = models.CharField(max_length=280)
    description = models.CharField(max_length=280)
    image = models.ImageField(upload_to='static/images/post_image',
                              default='static/images/post_image/default.jpg')

    def __str__(self):
        return f'{self.title}'

    def get_image_url(self, obj):
        return obj.image.url


class Menu(models.Model):
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True, blank=True)
    title = models.CharField(max_length=280)
    description = models.CharField(max_length=280)
    dish = models.ManyToManyField(Dish)
    price = models.SmallIntegerField(
        validators=[MinValueValidator(1), MaxValueValidator(10000)], default=None)

    def __str__(self):
        return f'{self.title}'

Предполагая, что у вас есть объект user, вы можете получить все блюда, связанные с этим объектом user следующим образом:

user.dish_set

Если вы хотите найти все меню, в которых есть определенные меню по владельцу блюда. Это можно сделать следующим образом

Menu.objects.filter(dish__user=user)

Размещение этого зависит от того, чего вы пытаетесь достичь. Если вы хотите проверить правильность вводимых данных, место должно быть в сериализаторе

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