首页 > 解决方案 > 如何在 Django 视图页面中显示外键数据?

问题描述

Project我有和之间的关系ProjectFloorPlan,我想ProjectFloorPlan在我的模板中显示数据。请让我知道如何ForeignKey在我的模板中显示数据。

这是我的models.py文件...

class Project(models.Model):
    name=models.CharField(max_length=225)
    slug=models.SlugField(null=True, unique=True)
   
    def __str__(self):
       return self.name


class ProjectFloorPlan(models.Model):
    project=models.ForeignKey('Project', related_name='projectfloorplan', on_delete=models.CASCADE, default=None)
    floorplan_image=models.ImageField(upload_to='floorplan_image')
    bhk=models.CharField(max_length=100)
    bed=models.CharField(max_length=100)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.project.name

这是我project.html正在尝试显示ProjectFloorPlan数据的文件...但它什么也没显示

{% fot i in project.projectfloorplan_set.all %}
<tr>
    <td>{{i.bhk}}</td>
    <td>{{i.bed}}</td>
    
</tr>
{% endfor %}

标签: pythondjangodjango-modelsdjango-viewsdjango-templates

解决方案


由于您已设置related_name='projectfloorplan',您不必使用_set符号来访问反向 FK。

所以,使用project.projectfloorplan.all而不是project.projectfloorplan_set.all

{% fot i in project.projectfloorplan.all %}
<tr>
    <td>{{ i.bhk }}</td>
    <td>{{ i.bed }}</td>

</tr>
{% endfor %}

推荐阅读