Django ORM查询:获取“has many”关系对象

2024-04-19 17:46:19 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个模型:

class DomainPosition(models.Model):
    domain   = models.ForeignKey(Domain)
    keyword  = models.ForeignKey(Keyword)
    date     = models.DateField()
    position = models.IntegerField()

    class Meta:
        ordering = ['domain', 'keyword']

如果要显示每个域的下一个表(表中的数字是位置值),如何获取模板的位置记录:

^{pr2}$

其中views.py

def show_domain_history(request, domain_name):
    domain = Domain.objects.filter(name__contains=domain_name)
    if not domain:
        return HttpResponseRedirect('/')
    else:
        # positions = ...
        variables = RequestContext(request, {
            'domain':    domain[0].name,
            'positions': positions,
        })
        return render_to_response('history.html', variables)

Tags: name模型modelreturnmodelsrequestdomainvariables
2条回答

由于您有一个从DomainPositionDomain的外键,您应该能够获得引用特定域dom的所有域位置的集合。在

然后,可以通过迭代模板中的域位置列表来构建表。在

def show_domain_history(request, domain_name):
    domain = Domain.objects.filter(name__contains=domain_name)
    if not domain:
        return HttpResponseRedirect('/')
    else:
        variables = {'domain': domain }
        return render_to_response('history.html', variables)

现在在模板中,您可以通过以下方式迭代:

^{pr2}$

相关问题 更多 >