如何仅将对象的一部分发送到 Django 中的模板

how to send just one part of an object to template in django

我只想将对象的一部分发送到模板。

我有 2 个型号如下:

class Person(models.Model):
    name = models.CharField(max_legth=50)
    sure_name = models.CharFiled(max_length=50)

class Office(models.Model):
    location = models.CharField(max_legth=50)

我还创建了如下模型:

class PersonOffice(models.Model):
    person = models.ForeignKey(Person)
    office = models.ForeignKey(Office)

现在,当我通过PersonOffice.objects.all()从数据库中获取数据时,数据如下所示:

{
    {
        "pk": 0,
        "person": {
            "pk":0,
            "name":"Harry",
            "sure_name":"Potter"
            },
        "office":{
            "pk":5,
            "location":"Toronto"
        }
    },  
    {
        "pk": 1,
        "person": {
            "pk":6,
            "name":"John",
            "sure_name":"Kelly"
            },
        "office":{
            "pk":6,
            "location":"NewYork"
        }
    }   
}

我只想通过 render 功能将办公室发送到模板。我该怎么做? 谢谢

已更新 我想在带有 {% for %} 循环的模板中使用它。例如:

{% for office in Offices %}
    <p>Office location: {{ office.location }}</p>
{% endfor %}

我使用了以下代码:

offices = PersonOffice.objects.all().values('office')
print(offices)

以下是终端的结果:

<QuerySet [{'office': 1}, {'office': 2}, {'office': 11}]>

您可以使用values

PersonOffice.objects.values('office')

这将为每个对象输出一个包含 office 的查询集。

编辑:

PersonOffice.objects.values('office__location')