2016-09-22 15 views
1

をselect_related:Djangoは、私は、次の2つのモデルを持っているクエリ

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' 

を私は次のクエリ使用しています:

Cannot resolve keyword 'soccerseason' into field. Choices are: campaignno, fixtureid, fixtureid_id, teamselection1or2, teamselectionid, teamselectionid_id, user, user_id, userselectionid 
:私は次のエラーを取得する実行されると

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

私はそれがうまくいかないことは分かっていましたが、治具のテーブル内のソーカセションをどのように参照するのかをよく理解できません。どんな助けもありがとう。多くのおかげで、アラン。

PS

あなたは私だけが知っているようにリンクされている他の二つのモデルが必要な場合。

答えて

1

ちょうどその形式あなたのケースで

field-that-reference-to-foreign-model__foreign-model-fieldfixtureid__soccerseasonで外国人モデルのフィールドでフィルタする必要があります。 The docsがあります。あなたは何をすべき

は、私はとても近かった

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

です。私はダブルアンダースコアを忘れています:(10分後に答えます。 –

関連する問題