如何仅将对象的一部分发送到 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')
我只想将对象的一部分发送到模板。
我有 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')