标签: django-subdomains

TypeError:object()没有使用Django-subdomains的参数

我正在尝试使用django-subdomains app 在我的Django项目中配置子域.

这些是我采取的步骤:

  • 使用pip安装django-subdomains.
  • 在我的MIDDLEWARE中添加了'subdomains.middleware.SubdomainURLRoutingMiddleware',只是b
  • 在我的设置中添加了SITE_ID,并配置了SUBDOMAIN_URLCONF

这是我的settings.py

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '*********************************************'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # …
Run Code Online (Sandbox Code Playgroud)

python django django-subdomains

6
推荐指数
1
解决办法
1826
查看次数

使用 django-hosts 的多个子域的一种视图

我的项目需要有多个子域。每个子域代表某个公司。例如:company1.myproject.io、company2.myproject.io。我使用django-hosts库来设置子域。

主机文件:

127.0.0.1       localhost
127.0.0.1       myproject.io
127.0.0.1       www.myproject.io
127.0.0.1       company1.myproject.io
127.0.0.1       company2.myproject.io
Run Code Online (Sandbox Code Playgroud)

设置.py:

ROOT_URLCONF = 'core.urls'
ROOT_HOSTCONF = 'core.hosts'
DEFAULT_HOST = 'www'
DEFAULT_REDIRECT_URL = "http://www.myproject.io:8000"
Run Code Online (Sandbox Code Playgroud)

核心/主机.py:

from hostsconf import urls as redirect_urls
host_patterns = [
    host(r'www', settings.ROOT_URLCONF, name='www'),
    host(r'(?!www).*', redirect_urls, name='wildcard'),
]
Run Code Online (Sandbox Code Playgroud)

hostsconf/urls.py:

from .views import wildcard_redirect

urlpatterns = [
    url(r'^(?P<path>.*)', wildcard_redirect)
]
Run Code Online (Sandbox Code Playgroud)

hostsconf/views.py:

DEFAULT_REDIRECT_URL = getattr(settings, "DEFAULT_REDIRECT_URL", "http://www.myproject.io:8000")

def wildcard_redirect(request, path=None):
    new_url = DEFAULT_REDIRECT_URL
    if path is not None:
        new_url = DEFAULT_REDIRECT_URL + "/" + path
    return …
Run Code Online (Sandbox Code Playgroud)

python django django-subdomains

5
推荐指数
1
解决办法
2974
查看次数

标签 统计

django ×2

django-subdomains ×2

python ×2