繁体   English   中英

Django select_related 查询

[英]Django select_related query

我有以下两个模型:

class StraightredFixture(models.Model):
    fixtureid = models.IntegerField(primary_key=True)
    home_team = models.ForeignKey('straightred.StraightredTeam', db_column='hometeamid', related_name='home_fixtures')
    away_team = models.ForeignKey('straightred.StraightredTeam', db_column='awayteamid', related_name='away_fixtures')
    fixturedate = models.DateTimeField(null=True)
    fixturematchday = models.ForeignKey('straightred.StraightredFixtureMatchday', db_column='fixturematchday')
    hometeamscore = models.IntegerField(null=True)
    awayteamscore = models.IntegerField(null=True)
    soccerseason = models.ForeignKey('straightred.StraightredSeason', db_column='soccerseasonid', related_name='fixture_season')


    def __unicode__(self):
        return self.fixtureid

    class Meta:
        managed = True
        db_table = 'straightred_fixture'

class UserSelection(models.Model):
    userselectionid = models.AutoField(primary_key=True)
    campaignno = models.CharField(max_length=36,unique=False)
    user = models.ForeignKey(User, related_name='selectionUser')
    teamselection1or2 = models.PositiveSmallIntegerField()
    teamselectionid = models.ForeignKey('straightred.StraightredTeam', db_column='teamselectionid', related_name='teamID')
    fixtureid = models.ForeignKey('straightred.StraightredFixture', db_column='fixtureid')


    class Meta:
        managed = True
        db_table = 'straightred_userselection'

我正在使用以下查询:

    prevWeekTeams = UserSelection.objects.select_related().filter(soccerseason=1025,fixturematchday=5,user=currentUserID).order_by('teamselection1or2')

当它运行时,我收到以下错误:

Cannot resolve keyword 'soccerseason' into field. Choices are: campaignno, fixtureid, fixtureid_id, teamselection1or2, teamselectionid, teamselectionid_id, user, user_id, userselectionid

我知道这行不通,但我不太明白如何在赛程表中提及足球赛季。 任何帮助,将不胜感激。 非常感谢,艾伦。

聚苯乙烯

如果您需要链接到的其他两个模型,请告诉我。

您只需要使用该格式过滤外国模型的字段

field-that-reference-to-foreign-model__foreign-model-field在你的情况下fixtureid__soccerseason 它最多描述的文档

你应该做的是

prevWeekTeams = UserSelection.objects.filter(fixtureid__soccerseason=1025,fixtureid__fixturematchday=5,user=currentUserID).order_by('teamselection1or2')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM