【发布时间】:2016-06-08 21:43:23
【问题描述】:
我正在完成我的第一个 Django 项目(除了几个教程),并且一直在思考如何完成这个任务。为简单起见,我将使用 Excel 类比来解释我要做什么。我在第 1 行(顶级模型)上有 7 个按钮。单击这些按钮中的任何一个,然后会在 A 列(SIDE 模型)中显示 5 个项目的列表,这些项目在第 2-6 行(BODY 模型)中都有相应的项目。在视图中,我可以通过 TOP 模型主键加载 SIDE 模型,但无法弄清楚如何连接 BODY 模型,因为它依赖于 SIDE 模型。
查看
def details(request, pk):
top = TOP.objects.filter().order_by('-modified_date')
middle= MIDDLE.objects.filter(TOP_id__pk=pk)
body = BODY.objects.filter(??????????)
return render(request, 'details.html', {'top': top, 'middle': middle,
'body': body})
型号
class TOP(models.Model):
title = models.CharField(max_length=200)
class MIDDLE(models.Model):
TOP= models.ForeignKey('mysite.TOP', related_name='middle')
title = models.CharField(max_length=200)
class BODY(models.Model):
TOP= models.ForeignKey('mysite.TOP', related_name='indicators')
MIDDLE= models.ForeignKey('mysite.MIDDLE', related_name='indicators')
title = models.CharField(max_length=200)
模板
{% block content %}
<div>
<div class="TOP-container">
{% for tops in top %}
<div class="tops"><a href="{% url 'details' pk=tops.pk %}">{{ tops.title }}</a></div>
{% endfor %}
</div>
{% for middles in middle %}
<div class="middle-container">
<div class="middles">{{ middles.title }}</div>
{% for bodys in body %}
<div class="bodys">{{ body.title }}</div>
{% endfor %}
</div>
{% endfor %}
</div>
{% endblock %}
【问题讨论】:
标签: django django-templates django-views