2013-05-06 50 views
0

例如,我有2個頁面列出新聞,一個用於桌面,一個用於移動,網址是'新聞/列表'和'新聞/移動/列表'。假設從模型獲取消息的邏輯是一樣的。分離Django視圖和模板

目前,我以這種方式工作。

def mobile_list(request): 
    complexLogic() 
    return render(request, 'app/mobile/list.html', context) 

def list(request): 
    complexLogic() 
    return render(request, 'app/list.html', context) 

我在想如何做下面的事情。它目前是否支持Django?

views.py

def list(request): 
    complexLogic() 
    return request,'success',context 

urls.py:

('news/list', 'app.views.list', {'success' : 'app/list.html'}), 
('news/mobile/list', 'app.views.list', {'success' : 'app/mobile/list.html'}) 
+2

我認爲你應該考慮響應式設計,而不是這樣做的。它可以解決您的大部分問題,並使您的應用程序更安全。 – 2013-05-06 15:26:48

+0

你的建議很好。但是,我只是想分開關注點。問題可能更爲通用。 – franziga 2013-05-06 16:21:24

+0

我想你可以使用'request.path'並尋找'mobile'。如果存在,則顯示手機版本。 – themanatuf 2013-05-06 17:29:05

回答

0

是的,它的支持。你可以閱讀關於它here

基本上,你要一個success參數添加到您的list功能,然後使用該值:

def list(request, success): 
    complexLogic() 
    return render(request, success, context) 
+0

那麼這種情況如何{'成功':'app/list.html','失敗':'app/error.html'},似乎函數簽名會變得更長以獲得更多結果 – franziga 2013-05-06 16:22:47