2017-01-25 4 views
0

私は監査アプリケーションを構築する 私はモデル名を取得する必要があります。 事は私が監査モデルからモデルの名前を知らないことです 一般的なモデルを参照してその名前を取得する方法はありますか?監査のモデル名を取得

私はすでに文字列に情報を保存するユーザーログイン/アウトモデルを作ったので、私は似たようなことをしたい。

@receiver(user_logged_out) 
def LogoutWatch(request,*args,**kwargs): 
    Log = AuditoriaLog() 
    Log.fecha = datetime.datetime.now() 
    Log.usuario = request.user.usuario 
    Log.nombre_u = str(request.user.get_full_name()) 
    Log.cedula_u = str(request.user.usuario.cedula) 
    Log.actividad = "Cierre de Sesion" 
    Log.save() 

私は辞書でモデルを格納ジャンゴ機能がある機種名を取得することができ、その後、私は私が欲しいものを得るために、信号保存ポストに接続することができます。

答えて

1

type(object)メソッドを使用すると、オブジェクトタイプクラスへの参照が得られます。 documentationを参照してください。

そのtypeクラスには、クラス名を格納する__name__属性があります。

また、djangoモデルでは、同じプロポーザルの2つの属性(verbose_nameverbose_name_plural)が提供されています。 documentationを参照してください。

だから、あなたはそれらのいずれかを使用することができます。

print type(model).__name__ 
print type(model)._meta.verbose_name 
print type(model)._meta.verbose_name_plural