将 Django 模型传递给模板

Zer*_*er0 5 python django django-models

我有一个小问题,我似乎无法解决。这似乎是一件非常微不足道的事情,但我就是无法弄清楚。本质上我想做的是创建一个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
Run Code Online (Sandbox Code Playgroud)

问题在于我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)
Run Code Online (Sandbox Code Playgroud)

Jac*_*ans 3

在模板内,projects.html您应该能够循环每个项目的链接

{% for project in projects %}
  {% for link in project.link_set.all %}
      {{ link }}
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)