gpt4 book ai didi

python - 在创建后修改 Django QuerySet 对象

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:24 25 4
gpt4 key购买 nike

假设我进行以下查询:

showtimes = ShowTime.objects.filter(
start_date__lte=start,
end_date__gte=end,
movie__slug=movie.slug,
city=city,
visible=1)

现在我想要一个函数,它接受那个queryset 对象 并根据其他一些属性进一步过滤结果,如下所示:

def is_subtitled_3d(showtimes):
return (
showtimes.language == LANGUAGE_SUBTITLED and
showtimes.type_vip == None and
showtimes.type_3d == 1 and
showtimes.type_gtmax == None and
showtimes.type_xd == None)

类似的东西是否适用于修改对象,或者有不同的方法吗?

最佳答案

查询集是 lazy and chainable

您可以根据需要多次过滤放映时间。我不相信你的语法是正确的,但你可以使用标准的 filter 来保持过滤查询集

def is_subtitled_3d(showtimes):
return showtimes.filter(
language=LANGUAGE_SUBTITLED,
type_vip__isnull=True,
type_3d=1,
type_gtmax__isnull=True,
type_xd__isnull=True
)

也许如果用户想要对 3d 电影进行过滤,以说明如何组合过滤器,例如:

showtimes = ShowTime.objects.filter(
start_date__lte=start,
end_date__gte=end,
movie__slug=movie.slug,
city=city,
visible=1)

if request.GET.get('is_3d_movie'):
showtimes = showtimes.filter(type_3d=1)
etc...

关于python - 在创建后修改 Django QuerySet 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14989493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com