为模型覆盖Django的RelatedManager

为模型覆盖Django的RelatedManager

本文介绍了为模型覆盖Django的RelatedManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能超越经理的关系?例如:

How i can override manager for relations? For example:

user.entry_set # django.db.models.fields.related.RelatedManager

但是我需要我自己的经理。我尝试使用此代码,但这不起作用:

But i need for my own manager. I try this code, but this does not work:

class EntryManager(models.Manager):
    use_for_related_fields = True

谢谢。

推荐答案

您的任务需要相当hacky的代码,这些代码很难维护和理解(如果可能的话)。

You task requires rather hacky code which will be very hard to maintain and understand (if it's even possible).

这怎么办?

class EntryManager(models.Manager):
    def by_user(self, user):
        # do anything you want

# usage
Entry.objects.by_user(user=user)

这篇关于为模型覆盖Django的RelatedManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 01:57