我在Django中有以下两个表。
class TeamSubscriptions(models.Model):
user = models.ForeignKey(User, unique=True)
soccer_team = models.ForeignKey(SoccerTeam)
....
....
class Meta:
db_table = 'soccer_team_subscriptions'
class MatchSubscriptions(models.Model):
team_subscriber = models.ForeignKey(TeamSubscriptions, related_name='soccer_user_matches')
soccer_match = models.IntegerField(db_index=True)
winning_team_guess = models.CharField(max_length=50, default='')
...
...
class Meta:
db_table = 'soccer_game_subscriptions'
unique_together = ("team_subscriber", "soccer_match")
我想从Teamsubscriptions
获取所有订阅者。对于他们所有人,我想找到相应的
来自MatchSubscriptions
的具有特定soccer_match
ID的行。目的是从第二个表中获取winning_team_guess
个特定soccer_match
ID。
有没有办法为特定的soccer_match
ID执行此操作(Reverse ForeignKey).. ??
答案 0 :(得分:0)
是的,你可以用Django的ORM做到这一点:
TeamSubscriptions.objects.filter(matchsubscriptions__soccer_match_id=YOUR_ID)
查看Django documentation关于查找关系的信息。
一般情况下,如果您要在查询集中进行过滤,则可以使用related query name,默认情况下等于FK的related name,在您的示例中为matchsubscriptions_set
,必须删除Django在使用查询集时生成的_set
。