2012-04-04 7 views
0

だから、django-model-utilsはすばらしいです。
私はdjango 1.3を使用して継承マネージャを使用しようとしています。django-model-utils、継承、テンプレート

私は何を達成したいことは次のとおりです。
- すべてのサブクラスをキャプチャするクエリセット
- このクエリセットを反復処理が、それぞれ違った特定のサブクラス

撮影に応じて、OBJに扱う -
が テンプレートに、このクエリセットを渡しますドキュメントからの例で私が行った場合:

nearby_places = Place.objects.filter(location='here').select_subclasses() 

私はテンプレートにいるかつて私はnearby_placesのそれぞれが、私は異なる何かを行うことができますが何であるかを知るための方法がありますそれとentですか?例えば

{% for np in nearby_places %} 
{% if np is a restrautant %} 
# do this 
{% elif np is a bar %} 
# do this 
{% endif %} 
{% endfor %} 

私のサブクラスのそれぞれで、私は

def is_restaurant() 
    return True 

def is_bar() 
    return True 

etc 

のような方法がこれを行うためのいくつかの他のよりエレガントな方法はあります定義した場合、私が今考えることができる唯一の事はありますか?その後

def classname(self): 
    # can't access attributes that start with _ in a template 
    return self.__class__.__name__ 

答えて

1

は、次のようなモデルのメソッドを追加することができます

{% if np.classname == 'Restaurent' %} 
{% endif %} 

{% if np.classname == 'Bar' %} 
{% endif %} 

etc, etc... 
+0

甘いです。それは私が欲しいものをlkのように見える。どうも。 –

+0

既に素敵なサブクラス化があるので、必要なロジックをモデル自体に追加する方がいいです。 たとえば、get_html_descriptionなどのメソッドを使用するか、必要なものを使用します。 – joshua

関連する問題