Django子域名

7 投票
1 回答
6975 浏览
提问于 2025-04-17 13:28

我正在尝试制作一个基本的商店应用程序。我已经设置了一个数据库,让每个产品都和特定的商店关联起来:我们可以叫这些商店“鞋子”、“玩具”和“书籍”。我需要为这个应用设置子域名(这是作业要求,没得选择),这样我就可以映射到 shoes.myapp.com、toys.myapp.com 和 books.myapp.com。我觉得我需要做的是以某种方式设置子域名(我在网上查过,但有点困惑:这个方法可以吗?),然后,我想我需要根据子域名的信息来过滤我的数据库,这样只有像“鞋子”这样的商店名称的产品才会出现在页面上。我这样做是不是在正确的方向上,还是有更好的结构方式呢?

1 个回答

3

我建议你使用这个应用: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

撰写回答