プロキシモデルを使用します User
好きな
class Nuser(User):
class Meta:
proxy = True
def __unicode__(self):
return u"%s %s" % (self.first_name, self.last_name)
ビュー全体で使用します。
私はこのオブジェクトのインスタンスを取得するための最良の方法を疑問に思っていました request.user
毎回
Nuser.objects.get(pk=request.user.pk)
それを行う簡単な方法はありませんか?
回答:
回答№1の場合は10あなたの代わりにプロキシモデルのインスタンスを返すカスタム認証バックエンドを書くことができます User
インスタンス:
from django.contrib.auth.backends import ModelBackend
class ProxiedModelBackend(ModelBackend):
def get_user(self, user_id):
try:
return Nuser.objects.get(pk=user_id)
except Nuser.DoesNotExist:
return None
あなたの settings.py
AUTHENTICATION_BACKENDS = ["my_project.auth_backends.ProxiedModelBackend",]
回答№2の場合は0
Djangoに、たとえば、 MyNurse
照会するたびにオブジェクト Nurse
オブジェクト。 のクエリセット Nurse
オブジェクトはこれらのタイプのオブジェクトを返します。プロキシオブジェクトのポイントは、コードが元の Nurse
これらを使用し、独自のコードは、含まれている拡張機能を使用できます(とにかく他のコードは依存していません)。それを置き換える方法ではありません Nurse
(または他の)モデルをどこでも独自の創造物でモデル化します。