我有一个小问题,我似乎无法理解。这似乎是一件非常微不足道的事情,但我无法弄明白。基本上我要做的是创建一个Project
模型,其中包含某个项目的信息,然后有另一个名为Link
的模型,其中包含链接的名称,如“获取程序”或“下载发布”并拥有一个URLField,其中包含这些链接的URL,并且是Project
的子项。
到目前为止,我的models.py
如下:
from django.db import models
class Project(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
def get_name(self):
return self.name
def get_description(self):
return self.description
def __str__(self):
return self.name
class Link(models.Model):
project = models.ForeignKey(Project)
name = models.CharField(max_length=255)
url = models.URLField()
def get_name(self):
return self.name
def __str__(self):
return self.name
问题在于我views.py
我希望能够传递Projects对象,所以我可以迭代它们并显示每个项目的所有链接,包括项目对象字段,如名称和描述。到目前为止我已经完成了:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Project, Link
def projects_index(request):
projects = Project.objects.all()
links = Link.objects.all()
context = {
'projects': projects,
}
return render(request, 'projects.html', context)
答案 0 :(得分:1)
在模板projects.html
中,您应该能够使用
{% for project in projects %}
{% for link in project.link_set.all %}
{{ link }}
{% endfor %}
{% endfor %}
答案 1 :(得分:0)
你真的应该做这个教程。
Rectangle {
id: white_background
objectName: "white_background"
x: 0
y: 0
width: 640
height: 350
color: "#ffffff"
border.width: 0
...
}
在外键中添加for project in projects:
for link in project.link_set.all:
<...>
,内循环可以是
related_name="links"