查询从N:1表到一个

时间:2017-08-04 05:58:48

标签: django

我不确定我该怎么做但是在这里,例如,我有模特团队和骑手。很明显,车队有很多车手,所以FK在骑手上。

class Team(models.Model):
    team_name = models.CharField(_('Team name'), max_length=100, db_index=True)
    bike = models.CharField(_('Bike'), max_length=100, db_index=True)
    slug = models.SlugField(_('Slug'), max_length=100)


class Rider(models.Model):
    first_name = models.CharField(_('First name'), max_length=100, db_index=True)
    last_name = models.CharField(_('Last name'), max_length=100, db_index=True)
    number = models.IntegerField(_('Rider number'))
    team = models.ForeignKey(Team)

现在在模板中,我得到所有团队并展示它们,但同时我想展示每个团队的车友,所以我用循环来展示团队:

{% for team in teams %}
{% endfor %}

现在我怎么能够获得每个团队的车手,因为我无法在模板中传递任何参数?

2 个答案:

答案 0 :(得分:3)

team.rider_set.all()

你可以得到与你的团队有关的所有骑手。

答案 1 :(得分:0)

更明确的解决方案是在Team FK上使用related_name。

team = models.ForeignKey(Team, related_name='riders')

字段设置的循环。

{% for team in teams %}
    {% for rider in team.riders.all %}
    {% endfor %}
{% endfor %}