Skip to main content
 首页 » 编程设计

Python 复杂查询

2025年05月04日20lvdongjie

我有以下模型:

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) 

我如何使用首选项表在餐厅模型中查询

例如,我需要获得对特定用户具有相同偏好的餐厅?

请有想法的人帮帮我

非常感谢

请您参考如下方法:

如果您通过查询用户来获取用户偏好,您将获得相应的用户偏好,查询就像

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)