Python 将筛选器添加到View.py中父级的子级

Python 将筛选器添加到View.py中父级的子级,python,django,Python,Django,我有一个父母(公司),有很多孩子(收费);有了这些数据,我在一张表上列出了各个公司的相关费用。所有工作正常(见下面的代码) 但是,我想在view.py中的费用中添加过滤器;我知道我可以通过使用模板条件的模板来做到这一点,但我发现这是有限和繁琐的。例如,我找不到一个不同的模板条件,我必须为其他事情遍历几个if条件,如果我可以在view.py中这样做,一切都会变得有点麻烦 是否有方法将筛选器添加到与其父记录关联的子记录中。因此,A公司有5项相关的费用,我想按日期进行筛选(作为一个示例)-同样,我知道

我有一个父母(公司),有很多孩子(收费);有了这些数据,我在一张表上列出了各个公司的相关费用。所有工作正常(见下面的代码)

但是,我想在view.py中的
费用中添加过滤器;我知道我可以通过使用模板条件的模板来做到这一点,但我发现这是有限和繁琐的。例如,我找不到一个不同的模板条件,我必须为其他事情遍历几个
if
条件,如果我可以在view.py中这样做,一切都会变得有点麻烦

是否有方法将筛选器添加到与其父记录关联的子记录中。因此,
A公司
有5项相关的
费用
,我想按日期进行筛选(作为一个示例)-同样,我知道这可以通过模板条件完成,但我想知道是否可以在视图中完成

希望这有意义

from django.shortcuts import render
from companies.models import Company, Charge, Filing
from django.http import HttpResponse

def watch_list(request):
    companies = Company.objects.order_by('-data_date')

    return render(request,'company_watch/watch_list.html',{'companies':companies})

{%为公司中的公司%}
{{company.name}
    {company.charge\u set.all%}
  • {{charge.charge_id}
  • {%endfor%}
{%endfor%}
解决方案取决于您的具体需要。条件始终是相同的还是动态的?如果在
公司
模型中添加一个方法,返回满足条件的
费用
s,则条件始终是相同的。模型方法?这是有道理的——我会试一试;我只是很惊讶它不能在view.py中使用,但我会边学边用。你可以在view中使用它,但这需要你急切地提前计算所有公司和所有费用,并将它们存储到不同的数据结构(如字典)中。模型方法允许您在模板请求时懒洋洋地执行额外的查询。模板中可能有一些逻辑,例如,根据条件跳过某些公司。在这种情况下,您不想查询那些被跳过的公司的费用。
{% for company in companies %}
<tr>
   <td>{{company.name}}</td>
   <td>
      <ul>
         {% for charge in company.charge_set.all %}
         <li>{{charge.charge_id}}</li>
         {% endfor %}
      </ul>
   </td>
</tr>
{% endfor %}