You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django如何通过外键关联Canva模型的created字段筛选Bilan模型

Django 跨外键过滤Bilan查询结果的方法

Django ORM 支持通过**双下划线(__)**语法跨外键关联访问关联模型的字段,直接基于外键字段拼接关联模型的字段名即可完成跨表过滤,具体实现如下:

基础过滤示例

比如过滤关联的Canva实例创建时间晚于2024年1月1日的所有Bilan记录:

from django.utils import timezone
from datetime import datetime

# 构造带时区的目标日期(适配Django时区配置)
target_date = timezone.make_aware(datetime(2024, 1, 1))
# 跨外键过滤
filtered_bilans = Bilan.objects.filter(canva__created__gte=target_date)

常用查询条件扩展

你可以根据需求替换__gte(大于等于)为其他时间查询规则:

  • __lt:小于指定时间
  • __gt:大于指定时间
  • __lte:小于等于指定时间
  • __range:匹配指定时间区间,示例:
    filtered_bilans = Bilan.objects.filter(canva__created__range=(start_date, end_date))
    
  • __date:精确匹配年月日,忽略时分秒,示例:
    filtered_bilans = Bilan.objects.filter(canva__created__date=datetime(2024,1,1).date())
    

特殊场景:保留无关联Canva的记录

如果你的Bilan实例canva字段允许为空,默认过滤会自动排除无关联Canva的记录,如需保留可以用Q对象组合条件:

from django.db.models import Q

filtered_bilans = Bilan.objects.filter(
    Q(canva__isnull=True) | Q(canva__created__gte=target_date)
)

内容的提问来源于stack exchange,提问作者CSofiane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:27:05