python query_article方法_python – Django:为特定模型的`QuerySet`对象提供自定义过滤方法...

如果需要过滤器链接扩展Queryset.

我当前项目的一个例子:

from django.db import models

from django.db.models.query import QuerySet

class MemberQuerySet(QuerySet):

def in_group(self, group):

return self.filter(group_set__pk=group.pk)

def not_in_group(self, group):

return self.exclude(groups_set__pk=group.pk)

class MemberManager(models.Manager):

def get_queryset(self):

return MemberQuerySet(self.model, using=self._db)

def in_group(self, group):

return self.get_queryset().in_group(group)

def not_in_group(self, group):

return self.get_queryset().not_in_group(group)

class Member(models.Model):

# ...

objects = MemberManager()

有了这个你可以做:

Member.objects.in_group(one_group).not_in_group(another_group)

如果您不需要过滤器链接,那么使用自定义方法的经理就足够了.

这在docs中得到了很好的报道.

This snippet对于更快的QuerySet插件看起来不错,但它已经很久了(4年)而且我从未尝试过它.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值