【问题标题】:Django SubdomainDjango 子域
【发布时间】:2013-01-07 14:45:56
【问题描述】:

我正在尝试制作一个基本的商店应用程序。我已经建立了一个数据库,以便每个产品都与一个特定的商店相关联:让我们称商店为鞋、玩具和书籍。我需要为应用程序设置子域(它在分配规范中,没有选择)这样我就可以映射到 shoes.myapp.com、toys.myapp.com 和 books.myapp.com。我认为我需要做的是以某种方式设置子域(我已经用谷歌搜索过但很困惑:是this the way to go?)然后,我想,从信息中过滤我的数据库子域,以便只有具有商店名称“鞋子”的产品才会出现在页面上。我是否正在接近正确的轨道,还是有更好的方法来构建它?

【问题讨论】:

  • 你在运行什么网络服务器?您可能希望使用您的网络服务器将子域转换为环境变量。
  • 你的问题解决了吗?

标签: python django e-commerce


【解决方案1】:

我建议你使用这个应用程序:django-subdomains。 http://django-subdomains.readthedocs.org/en/latest/index.html

然后,在你的 settings.py 中,你应该使用:

SUBDOMAIN_URLCONF = {
    'toys': 'yourproject.urls.toys',
    'shoes': 'yourproject.urls.shoes'
(...)
}

如果您需要在视图中使用子域的名称,它将附加到请求对象中:

def your_view(request):
    subdomain = request.subdomain
    products = Products.objects.filter(store=subdomain) #an example how to use it to specif database queries. I dont know how your models are

【讨论】:

  • 好的——这看起来像我想要的......不过有点困惑。所以,我认为请求对象的第二部分对我来说很有意义,这是重要的部分。不过,我已经阅读了几次文档和您的示例,但我还是有点迷茫。我的 URL 遵循以下结构: myproject.storename.pagename 商店名称是玩具、鞋子、书籍。页面名称是“products”、“checkout”和“shoppingcart”以及主页的 / (您会这么说吗?)。所以总共有 12 页——三个商店各有 4 页。我需要将它们单独映射出来吗?
  • 这感觉不是很 Pythonic。我错过了什么?
  • 如果您的所有应用程序的行为都相同,您可以将所有商店映射在一起并处理每个子域,就像我的示例视图中一样。我不明白为什么这不是pythonic。
  • 我的意思是我说的,不是你的答案。我不应该写出 12 个网址,对吧?我是新来的,不太听从你的建议。
  • 任何人都可以在不使用包的情况下详细说明Van Gale's answer 之类的答案
猜你喜欢
  • 2015-12-18
  • 2012-07-17
  • 2011-05-29
  • 2011-02-18
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 2015-09-19
相关资源
最近更新 更多