1

モデルに ManyToMany フィールドがあり、デフォルトで _set フィールドを持つ別のモデルからクエリを実行したい:

class Airport(models.Model):
    name = models.CharField(max_length=1024, blank=True, null=True)

    def __unicode__(self):
        return unicode(self.name)

class Agent(models.Model):
    name = models.CharField(max_length=1024, blank=True, null=True)
    airports = models.ManyToManyField(Airport)
    def __unicode__(self):
        return unicode(self.name)

したがって、次のようにクエリします。

a=Agents.objects.filter(airports_name_contains='asd')

正常に動作します。しかし:

b=Airport.objects.filter(agent_set__name__contains='agent_')

与える

キーワード'agent_set_name'をフィールドに解決できません

Airportモデルを正確に照会したい。助言がありますか?

4

1 に答える 1

1

おっと、悪い。解決策を見つけました。manytomany フィールドの Django 表現は、ルックアップで「agent_set」を示しますが、フィールド自体は「agent」です。

agents=Airport.objects.filter(agent_name_contains='agent_')
于 2012-09-27T07:45:51.310 に答える