我正在实施ModelManger以保护隐私。
基本上,我想为此案例排除一些查询集
only_me
是true
帖子(Cloth)的所有者未登录用户。
class ClothManager(models.Manager):
def all(self, *args, **kwargs):
return super(ClothManager, self).filter(???)
用例
如果需要,我可以使用Q
答案 0 :(得分:1)
您可以尝试:
class ClothManager(models.Manager):
def get_queryset(self, user=None, request=None, **kwargs):
qs = super(ClothManager, self).get_queryset()
user = request.user if not user else user
if request:
user = request.user if not user else user
if user:
qs = qs.exclude(Q(only_me=True) & ~Q(user=self.request.user))
return qs
def __call__(self, user=None, request=None, **kwargs):
return self.get_queryset(user=user, request=request, **kwargs)
以及代码中的某个地方:
qs = YourModel.objects(request=request)