用related_name Django搜索

Vit*_*mar 0 django django-models

我有这样的模特:

class LifeGoals(models.Model):
    name = models.CharField(max_length=200)

class Interests(models.Model):
    name = models.CharField(max_length=200)

class Sports(models.Model):
    name = models.CharField(max_length=200)

class UserProfile(models.Model):
    name = models.CharField(max_length=50)
    life_goals = models.ManyToManyField(LifeGoals, related_name='user_life_goals')
        # may be more than 1 choice
    interests = models.ManyToManyField(Interests, related_name='user_interests')
        # may be more than 1 choice
    sports = models.ManyToManyField(Sports, related_name='user_sports')
        # may be more than 1 choice
Run Code Online (Sandbox Code Playgroud)

如何使用DjangoORM为这样的查询编写搜索过滤器(例如):

 User that has some options in LifeGoals and some options in Interests and some options in Sports
Run Code Online (Sandbox Code Playgroud)

提前致谢!!!

mog*_*ogo 5

我想你可以试试这个:

UserProfile.objects.filter(life_goals__name="goal_name",
                           interests__name="interests_name", 
                           sports__name="sports_name")
Run Code Online (Sandbox Code Playgroud)

但是这里的一切都很好解释:关于查询的django doc