2012-03-24 9 views
1

私が作成したすべてのビューでは、通常、「model = Student」などのモデルを宣言します。私が作ろうとしているのは、テンプレートにモデル名を表示

生徒の

をテンプレートに挿入することです。コンテキスト内で新しい変数を渡さなければ簡単な方法がありますか?

私はここにいくつかの答えを見てきましたが、それらのすべてのビューを変更しなければならなかった=/

は実際に私が見せたいものです: クラスのMeta: verbose_name = _(U」学生")

モデルでは、私はビューを通過しました。

+2

可能重複djangoのテンプレート](http://stackoverflow.com/questions/6571649/model-name-of-objects-in-django-templates) –

+0

あなたはこの質問を見ましたか? http://stackoverflow.com/questions/7432142/django-template-display-model-verbose-names-objects – Ben

答えて

0

Pythonのクラス名は、任意のオブジェクトの__class__.__name__属性に格納されています。デフォルトでは、Djangoはプライベート属性を示すので、テンプレート内で__(二重のアンダースコア)で始まる属性を使用することを許可しません。

単にソリューションはcustom template filterを書くことです:

@register.filter 
def classname(obj): 
    return obj.__class__.__name__ 

次に(最初のテンプレートに{% load libraryname %}に覚えている)テンプレートでそれを使用します。オブジェクトの[モデル名の

{{ obj|classname }} # Will print the class name of obj 
+1

私は参照してください、しかし、ここでの問題は、私はまだオブジェクトを持っていないということです。私は空リスト・ビューにあり、必要があればInsert Studentへのリンクが必要です。あなたのソリューションはオブジェクトでうまく動作します。 私が持っているのは、モデル=私がビューに合格した学生に関連する学生のコンテクストです。 – StaticX

+0

私はあなたが何を達成しようとしているか分かりません。 –

関連する問題