【问题标题】:How does Django build URLs that depend on a site?Django 如何构建依赖于站点的 URL?
【发布时间】:2014-03-27 16:58:41
【问题描述】:

我正在尝试找出 Django 如何构建 URL,尤其是那些依赖于多个站点的 URL。 Django 在哪里构建 URL 以及站点域是如何添加到用户定义的 URL 模式的?

基本上,我有几个 Django CMS 页面和多个 Django 站点。我需要知道如何为依赖于与当前站点不同的站点的页面创建 URL;即,如何将正确站点的域添加到页面的 URL。

【问题讨论】:

  • 站点域不是由 Django 预先设置的。 Django 只处理域之后的部分。
  • 如果我有多个站点(也就是 Django 站点),如何正确构建 URL?
  • 多个网站?你的意思是多个应用程序?
  • 我猜他的意思是多个项目。
  • 不,不。我说的是使用 contrib 模块 sites 的多个站点。基本上我使用 Django CMS 并在多个站点上创建了多个页面。我需要知道如何将正确的网站添加到页面的 URL。

标签: python django django-urls django-cms django-sites


【解决方案1】:

似乎必须手动将 Django 站点的域添加到 URL。来自Django's docs

>>> from django.contrib.sites.models import Site
>>> obj = MyModel.objects.get(id=3)
>>> obj.get_absolute_url()
'/mymodel/objects/3/'
>>> Site.objects.get_current().domain
'example.com'
>>> 'http://%s%s' % (Site.objects.get_current().domain, obj.get_absolute_url())
'http://example.com/mymodel/objects/3/'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2020-07-24
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多