python - Django ORM 查询 : getting "has many" relation objects

标签 python django django-models django-orm

有一个模型:

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

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

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

+----------+--------+--------+-------+--------
| keyword  | date1  | date2  | date3 | ...
+----------+--------+--------+-------+--------
| keyword1 |    2   |    6   |    7  |   ...
+----------+--------+--------+-------+--------
| keyword2 |    4   |   12   |    5  |   ...
+----------+--------+--------+-------+--------
| keyword3 |    6   |    3   |    9  |   ...
+----------+--------+--------+-------+--------

其中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)

最佳答案

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)

现在在模板中,您可以将其迭代为:

{% for dom in domain %}

name: {{ dom.name }}

{% for item in dom.domainposition_set %} 

     date: item.date

     position: item.position
{% endfor %}

{% endfor %}

关于python - Django ORM 查询 : getting "has many" relation objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528783/

相关文章:

python - 在 Python 中实现任意图像算法时处理边界像素的有效方法

python - 将所有自定义验证放入模型中有什么问题?

python - BeautifulSoup findall 返回空列表

python - 使用 pandas 更新 CSV 文件中的 Nan 值,并在 CSV 的其他列上使用 if else 条件

Javascript/Python 字符 ASCII 检查

django - 未使用 jquery .ajax() 将数据发送到 Django View

Django 授权 : How are many-to-many relationship models created?

Django 模型管理器用于在字段中保存自定义处理的数据

python - 在 python 中暂停和恢复线程

django - 使用 pycharm 调试 django heroku foreman