Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从获取的对象访问值?_Django - Fatal编程技术网

Django 从获取的对象访问值?

Django 从获取的对象访问值?,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 =

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  = 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我很高兴它帮助了你。:)