2012-05-11 9 views
2

どのように関係のマネージャをオーバーライドできますか?例:モデルのdjangoのRelatedManagerをオーバーライドしてください

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

しかし、自分のマネージャーが必要です。私はこのコードを試しますが、これはうまくいきません:

class EntryManager(models.Manager): 
    use_for_related_fields = True 

ありがとう。

+1

好奇心のために、なぜあなたはカスタムマネージャが必要だと思いますか? –

+0

なぜ 'use_for_related_fields'は動作しませんか?それは*のためのものなので、もしうまくいかなければ、あなたのコードには何か不具合があります。 *常にコードを投稿する* –

+0

@ChrisPratt実際には、OneToOneField関係([ticket](https://code.djangoproject.com/ticket/14891))でのみ動作します。 – DrTyrsa

答えて

-1

あなたのタスクでは、(たとえ可能であれ)維持して理解するのが非常に難しい、むしろハッピーなコードが必要です。

これはどうですか?

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

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