【问题标题】:Separation of Django view and templateDjango视图和模板的分离
【发布时间】:2013-05-06 15:20:36
【问题描述】:

例如,我有 2 个页面列出新闻,一个用于桌面,一个用于移动,网址是“新闻/列表”和“新闻/移动/列表”。假设从模型中获取消息的逻辑是相同的。

目前,我就是这样工作的。

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'})

【问题讨论】:

  • 我认为您应该研究响应式设计而不是这样做。它将解决您的大部分问题,并使您的应用程序在未来更加安全。
  • 你的建议很好。但是,我只想分开关注点。这个问题可能更普遍。
  • 我认为您可以使用request.path 并查找mobile。如果存在,则显示移动版本。

标签: django django-urls


【解决方案1】:

是的,它受支持。你可以阅读它here

基本上,您希望将success 参数添加到您的list 函数,然后使用该值:

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

【讨论】:

  • 那么这个案例{'success':'app/list.html','fail':'app/error.html'}怎么样,看起来函数签名会变得更长以获得更多结果
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 2013-04-14
  • 2012-11-13
  • 2015-03-24
  • 1970-01-01
  • 2015-06-02
相关资源
最近更新 更多