Django 从获取的对象访问值?
models.pyDjango 从获取的对象访问值?,django,Django,models.py class Period(CommonInfo): order_value = models.PositiveSmallIntegerField() start_date = models.DateField() end_date = models.DateField() name = models.CharField(max_length=30) class LeaseDiscount(CommonInfo): amount =
class Period(CommonInfo):
order_value = models.PositiveSmallIntegerField()
start_date = models.DateField()
end_date = models.DateField()
name = models.CharField(max_length=30)
class LeaseDiscount(CommonInfo):
amount = models.DecimalField(max_digits=7, decimal_places=2)
amountpayed = models.DecimalField(max_digits=7, decimal_places=2)
leaseterm = models.ForeignKey(LeaseTerm)
period_date = models.ForeignKey(Period)
views.py
我想列出我在租赁期间的所有折扣,查询如下:
period = Period.objects.filter(order_value__gte = start, order_value__lte = end).prefetch_related(
Prefetch(
"leasediscount_set",
queryset=LeaseDiscount.objects.filter(is_active=True, leaseterm = activeterm),
to_attr="all_discount"
)
)
但是,当我在模板中显示所有折扣的期间列表时,输出是[]
为什么??如何访问此对象的值?总的来说,我这样做对吗
更新:
模板
{% for field1 in data.period%}
<td> {{ field1.all_discount }}</td>
{data.period%中的字段1的%
{{field1.all_折扣}
根据Daniel的建议,您可以遍历objects.filter给出的列表,如下所示:
鉴于:
for data in period: # period is a LeaseDiscount object
print data.some_field_name # LeaseDiscount model fields
或在模板中:
首先通过render/render_to_响应传递对象,然后使用如下方法:
{% for data in period %}
{{ data.some_field_name }}
{% endfor %}
根据Daniel的建议,您可以遍历objects.filter给出的列表,如下所示: 鉴于:
for data in period: # period is a LeaseDiscount object
print data.some_field_name # LeaseDiscount model fields
或在模板中:
首先通过render/render_to_响应传递对象,然后使用如下方法:
{% for data in period %}
{{ data.some_field_name }}
{% endfor %}
您可以将
\uuu str\uuu
方法添加到LeaseDiscount
模型中,并返回默认情况下希望显示的任何内容。参考:您应该显示您的模板。一般来说,这只是告诉你你有一个查询集;您可以像平常一样迭代并访问各个项目。您可以向LeaseDiscount
模型添加\uuu str\uuu
方法,并返回默认情况下希望显示的内容。参考:您应该显示您的模板。一般来说,这只是告诉你你有一个查询集;您可以像平常一样迭代访问各个项目。谢谢,我应该在Perio中创建一个字段来保存这个值吗?由于我得到错误'Period'对象没有属性'some_field_name',我正在使用:)我自己的名称。我把它贴出来是为了和答案一致。但是我仍然不清楚这个字段是否应该存在于模型中?请使用LeaseDiscont模型/表的字段名。我给了这个名字,例如“some_field_name”。它对我有效,而不会在实际模型中创建额外的字段。这基本上是我的问题。@Borisheanimal我很高兴它帮助了你。:)谢谢,我应该在Perio中创建一个字段来保存这个值吗?由于我得到错误'Period'对象没有属性'some_field_name',我正在使用:)我自己的名称。我把它贴出来是为了和答案一致。但是我仍然不清楚这个字段是否应该存在于模型中?请使用LeaseDiscont模型/表的字段名。我给了这个名字,例如“some_field_name”。它对我有效,而不会在实际模型中创建额外的字段。这基本上是我的问题。@Borisheanimal我很高兴它帮助了你。:)