2016-10-20 9 views
0

私はレンダリングする2つのテンプレートを持っています listviewと私はユーザーから与えられたリクエストURLに従ってテンプレートを選択しています。私はそれを知っている、私は2つの別々の2つのURLに2つのテンプレートの2つのクラスを追加することができます。例URLリクエストに応じてdjango listviewのテンプレート名を変更する方法は?

class MyListView1(generic.ListView): 
    template_name = 'myapp/list_one.html' 
    ..... 
    ..... 

class MyListView2(generic.ListView): 
    template_name = 'myapp/list_two.html' 
    ..... 
    ..... 

のためではなく、私は一つのクラス内のURL要求をチェックし、1つのリストビュークラスの中、それに応じてテンプレートをレンダリングすることができれば方法は何ですか?

class MyListView(generic.ListView): 

    if request.path == '/list1' 
     template_name = 'myapp/list_one.html' 
    if request.path == '/list2' 
     template_name = 'myapp/list_two.html' 

のようなもの、私はこれが有効なコードではありません知っていますが、一般的なビューでダイナミックな何かをしたい時はいつでもちょうど

答えて

1

を視覚化するために、それは方法にする必要があります。 This pageは、ListViewで使用できるメソッドを示しています。これにはget_template_names()が含まれていることがわかります。

代わりに、共有機能の残りの部分を定義する共通の基本クラスを継承する、それぞれ独自のテンプレート名を定義する2つの別個のビュークラスを使用することもできます。

+0

ありがとう、それは働いた – Yogi

関連する問題