您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django:获取查询集的补充

Django:获取查询集的补充

qs = Model.objects.filter(...) # qs with objects to exclude
result = Model.objects.exclude(pk__in=qs.values_list('pk', flat=True))

但是,如果您想多次使用该逻辑,建议将其封装在一个方法中。这是我自定义查询集中使用的示例:

class QuerysetUtils:
    def get_queryset_complement(self, method):
        return self.exclude(pk__in=method().values_list('pk', flat=True))


class ExpirableQueryset(QuerysetUtils, models.query.QuerySet):
    def expired(self):
        return self.filter(expiration__lte=timezone.Now())

    def unexpired(self):
        return self.get_queryset_complement(self.expired)
Go 2022/1/1 18:50:28 有298人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶