Django:获取查询集的补充

Django:获取查询集的补充,第1张

Django:获取查询集的补充

短期解决方案

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

更多DRY解决方案

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

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)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5668119.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存