Wagtail中的通配符子域

时间:2017-05-20 11:52:46

标签: python django wildcard wagtail

如何在Wagtail中创建子域?

我在看https://github.com/tkaemming/django-subdomains,但这使用了Django Site框架。

我试过替换

from django.contrib.sites.models import Site

from wagtail.wagtailcore.models import Site

然而,wagtail没有属性'get_current'

我该怎么办?这里有解决方案吗?

2 个答案:

答案 0 :(得分:2)

我找到答案,我使用django 1.11和wagtail 1.10

和django-subdomain 2.1.0

此时django-subdomain不支持django 1.10> =所以我们需要 更新中间件以与Django 1.10兼容

我只是改变

class SubdomainMiddleware(MiddlewareMixin):

在middleware.py中

try:
   from django.utils.deprecation import MiddlewareMixin
except ImportError:
   MiddlewareMixin = object

class SubdomainMiddleware(MiddlewareMixin):

django-subdomain使用django-site但wagtail使用wagtail-site 所以我改变了utils.py文件

来自

def current_site_domain():
    from django.contrib.sites.models import Site
    domain = Site.objects.get_current().domain

def current_site_domain():
    try :
        from wagtail.wagtailcore.models import Site
        domain = Site.objects.get(is_default_site=True).hostname
    except:
        domain = "127.0.0.1"

您可以通过多种方式获取网站域

现在django-subdomain与wigtail一起工作 只需使用http://django-subdomains.readthedocs.io/en/latest/进行配置

我非常糟糕的英语

答案 1 :(得分:1)

对于通配符子域,您必须配置您的Web服务器(nginx,apache等)。对于NGINX,您必须添加

server {
....
server_name *.mydomain.com;
....
}

对于Apache

ServerAlias *.example.com

在您的 your-site.com.conf 文件中。