Как сравнить два набора запросов в Django и отфильтровать те, которые не совпадают точно? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть три модели, Холодильник, Рецепт и Ингредиент, и я хочу получить набор запросов всех рецептов и сравнить их ингредиенты с пищевыми продуктами моего объекта-холодильника. Я хочу отфильтровать все рецепты, в которых нет ингредиентов, совпадающих с содержимым моих продуктов, и вернуть набор запросов только тех, которые соответствуют.

Холодильник и еда в одном приложении: рецепт и ингредиент впрочее.

Я довольно новичок в Django и не смог найти способ сделать это. Мне удалось отфильтровать рецепты только с помощью поиска, но это всего лишь одно слово.

class Fridge(models.Model):
    name = models.CharField(max_length=20)
    belongs_to = models.ForeignKey(User, related_name="my_fridge", on_delete=models.CASCADE)
    food_contents = models.ManyToManyField(Food, related_name="in_fridges")
    slug = models.SlugField(allow_unicode=True, unique=True)

class Food(models.Model):
    name = models.CharField(max_length=20, unique=True)
    quantity = models.PositiveIntegerField()
    description = models.TextField(max_length=255, blank=True)
    date_added = models.DateTimeField(default=timezone.now)
    expiration_date = models.DateTimeField()
    is_expired = models.BooleanField(default=False)
    slug = models.SlugField(allow_unicode=True, unique=True)

class Recipe(models.Model):
    name = models.CharField(max_length=255, unique=True)
    rating = models.CharField(max_length=255)
    preparation_time = models.CharField(max_length=255)
    servings = models.CharField(max_length=255)
    instructions = models.CharField(max_length=1000)
    slug = models.SlugField()

class Ingredient(models.Model):
    name = models.CharField(max_length=255)
    recipe = models.ForeignKey(Recipe, related_name="ingredients", on_delete=models.CASCADE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...