2013-05-06 48 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