【问题标题】:Django Sites - Different urls.py for two sitesDjango Sites - 两个站点的不同 urls.py
【发布时间】:2011-09-16 05:53:27
【问题描述】:

我为我的一个客户维护了一个 Django webapp。我们在 Django 中构建了它,对于计算机用户来说,它很棒。我们现在想要迎合移动设备用户的需求。

在模板切换之上,我们还需要不同的工作方式。该应用程序的视图工作方式略有不同,但 URL 结构也需要简化。

我意识到我要要求的内容违反了 DRY 精神,但有没有一种好方法可以拆分 urls.py,使其一半用于 ourdomain.com,另一半用于 m.ourdomain.com?如果可以,我可以添加mobile_views.py 并编写新视图。

项目中启用了 Django 的站点,但我很高兴使用硬编码的request.domain.startswith('m.')-style hack。看起来这样可能会更好 - 但我不知道如何从 URL 文件中获取请求。

【问题讨论】:

    标签: django django-urls django-sites


    【解决方案1】:

    使用middleware 检测对其他站点的访问并将request.urlconf 设置为您要使用的其他urlconf。

    【讨论】:

    • 是的,这对我有用。谢谢。编辑:我认为这必须是第一个触发的中间件规则之一。你知道 Django 的 reverse 是否仍然有效(假设新的 URL 具有相同的名称)?
    • 您可能必须将request.urlconf 传递给reverse(),否则它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2011-07-22
    • 2018-05-31
    • 2012-09-03
    • 2021-09-01
    • 2013-01-01
    • 2021-06-09
    相关资源
    最近更新 更多