Python复杂查询

Python复杂查询,python,django,python-3.x,django-models,django-rest-framework,Python,Django,Python 3.x,Django Models,Django Rest Framework,我有以下几种型号: class Restaurant(models.Model): name = models.CharField(max_length=100) class UserPreference(models.Model): user = models.OneToOneField(User, on_delete=CASCADE) fruit = models.MantToManyField(Fruit) vegetable = models.Mant

我有以下几种型号:

class Restaurant(models.Model):
    name = models.CharField(max_length=100)


class UserPreference(models.Model):
    user = models.OneToOneField(User, on_delete=CASCADE)
    fruit = models.MantToManyField(Fruit)
    vegetable = models.MantToManyField(Vegetable)

class RestaurantPreference(models.Model):
    restaurant = models.OneToOneField(Restaurant, on_delete=CASCADE)
    fruit = models.MantToManyField(Fruit)
    vegetable = models.MantToManyField(Vegetable)
如何使用首选项表在餐厅模型中查询

例如,我需要得到对spec user有相同偏好的餐厅

求求你,谁有主意帮我


非常感谢

如果您通过与用户查询获得用户偏好,您将获得相应用户的偏好,查询如下

user_preference = UserPreference.objects.get(user=user)
fruits = user_preference.fruit.all() # user's fruit preferences
vegetables = user_preference.vegetable.all() # user's vegetable preferences
现在,您获得了用户的所有水果和蔬菜偏好。从这里,您可以使用django ORM查询餐厅偏好

restaurant_preferences = RestaurantPreference.objects.filter(fruit__in=fruits, vegetable__in=vegetables)

如果您通过查询用户来获得用户偏好,那么您将获得相应的用户偏好,查询如下

user_preference = UserPreference.objects.get(user=user)
fruits = user_preference.fruit.all() # user's fruit preferences
vegetables = user_preference.vegetable.all() # user's vegetable preferences
现在,您获得了用户的所有水果和蔬菜偏好。从这里,您可以使用django ORM查询餐厅偏好

restaurant_preferences = RestaurantPreference.objects.filter(fruit__in=fruits, vegetable__in=vegetables)
我们可以使用下面的代码

user = UserPreference.objects.get(id=request.user.id)
vegetables = user.vegetable.all() #all vegetable
restaurant = RestaurantPreference.objects.filter(vegetable__in=vegetables)
我们可以使用下面的代码

user = UserPreference.objects.get(id=request.user.id)
vegetables = user.vegetable.all() #all vegetable
restaurant = RestaurantPreference.objects.filter(vegetable__in=vegetables)

我猜这是flask和sqlalchemy?不,这是django和django rest框架,但这并不重要。我需要在控制台的末尾创建函数打印结果顺便说一句我编辑了问题标签我猜这是flask和sqlalchemy?不,是django和django rest框架,但没关系。我需要在终端创建函数,在控制台上打印结果。顺便说一句,我编辑了问题标签