python/Django过滤数据

python/Django过滤数据,python,django,logic,Python,Django,Logic,我对编程相当陌生,我创建了3个模型 孩子们 字段:名称、活动状态和赞助状态 主办方 字段:名称 赞助 字段:子项(外键)、发起人(外键)、开始日期和结束日期 我需要设置一个条件,只有那些在当前日期拥有少于2个赞助且处于活动状态的儿童才能显示 我已经在赞助表格中设置了与is_赞助相关的筛选器。但检查和更改是有关上述条件的赞助价值 基本上,我无法为上述条件编写逻辑 请帮助我,我想你的问题集会是这样的 from django.utils import timezone from django.d

我对编程相当陌生,我创建了3个模型

  • 孩子们 字段:名称、活动状态和赞助状态

  • 主办方 字段:名称

  • 赞助 字段:子项(外键)、发起人(外键)、开始日期和结束日期

  • 我需要设置一个条件,只有那些在当前日期拥有少于2个赞助且处于活动状态的儿童才能显示

    我已经在赞助表格中设置了与is_赞助相关的筛选器。但检查和更改是有关上述条件的赞助价值

    基本上,我无法为上述条件编写逻辑


    请帮助我,我想你的问题集会是这样的

    from django.utils import timezone
    from django.db.models.aggregates import Count
    # Don't forget to import your Sponsorship model
    
    
    sponsorships = Sponsorship.objects.filter(
        children__is_sponsored=True # Child is sponsored 
    ).filter(
        start_date__lte=timezone.now(), end_date__gte=timezone.now() # To make sure that sponsorship is active
    ).annotate(
        count_children=Count('children')
    ).filter(
        count_children__lt=2 # Less than 2
    )
    

    也许你不需要在你的孩子们的课堂上使用由国际大学赞助的领域。如果你想检查一个孩子是否有赞助商,你可以在children类中添加一个方法,在这个方法中,你可以查询有多少赞助商与这个孩子相关。即使将方法放入赞助商表单中,你可以发布你的赞助商表单吗?您的意思是要限制children字段的选择吗?