djangocms-multisite
djangocms-multisite copied to clipboard
django-multisite support for DjangoCMS
=================== djangocms-multisite
django-multisite <https://github.com/ecometrica/django-multisite>
_ support for DjangoCMS
|Gitter| |PyPiVersion| |PyVersion| |Status| |TestCoverage| |TestCoveralls| |CodeClimate| |License|
Support
Supported Django versions:
- Django 3.0
- Django 2.2
Supported django CMS versions:
- django CMS 3.7
Assumptions
#. A virtualenv up and running #. DjangoCMS working
Installation
pip install djangocms-multisite
Usage
#. Open your settings.py
file
#. We need to add the configurations for django-multisite <https://github.com/ecometrica/django-multisite>
_ :
-
Replace SITE_ID value with the SiteID function::
from multisite import SiteID SITE_ID = SiteID(default=1)
-
Add
multisite
,djangocms_multisite
toINSTALLED_APPS
::INSTALLED_APPS=[ ... 'multisite', 'djangocms_multisite', ... ]
-
Add those loders in the TEMPLATES setting::
TEMPLATES = [ ... { ... 'DIRS': {...} 'OPTIONS': { 'loaders': ( 'multisite.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', ) } ... } ... ]
-
For other settings (cache, etc.) check the
django-multisite <https://github.com/ecometrica/django-multisite>
_ page
#. Add multisite.middleware.DynamicSiteMiddleware
and djangocms_multisite.middleware.CMSMultiSiteMiddleware
to MIDDLEWARE_CLASSES
. The order is important: multisite.middleware.DynamicSiteMiddleware
must be applied before cms.middleware.utils.ApphookReloadMiddleware
, while djangocms_multisite.middleware.CMSMultiSiteMiddleware
must be right after::
MIDDLEWARE_CLASSES = [
...
'multisite.middleware.DynamicSiteMiddleware',
'cms.middleware.utils.ApphookReloadMiddleware',
'djangocms_multisite.middleware.CMSMultiSiteMiddleware',
...
]
#. Configure the URL mapping as follows. The tests.test_utils.urls1
path can be the main urlconf file that you already have in your project. And it can be the same for all the domains if you need the same structure.::
MULTISITE_CMS_URLS={
'www.example.com': 'tests.test_utils.urls1',
'www.example2.com': 'tests.test_utils.urls2',
}
MULTISITE_CMS_ALIASES={
'www.example.com': ('alias1.example.com', 'alias2.example.com',),
'www.example2.com': ('alias1.example2.com', 'alias2.example2.com',),
}
MULTISITE_CMS_FALLBACK='www.example.com'
#. Run python manage.py makemigrations
#. Run python manage.py migrate
to apply the django-multisite <https://github.com/ecometrica/django-multisite>
_ migrations
Settings explanation
MULTISITE_CMS_URLS ^^^^^^^^^^^^^^^^^^
Dictionary (or OrderedDict) containing the mapping between the domain (as configured in django
sites
) and the corresponding urlconf.
MULTISITE_CMS_FALLBACK ^^^^^^^^^^^^^^^^^^^^^^
The default domain to load if any of the above does not match.
MULTISITE_CMS_ALIASES ^^^^^^^^^^^^^^^^^^^^^
Dictionary (or OrderedDict) containing the mapping between the domain (as configured in django
sites
) and a list of aliases. This is optional if all the aliases are configured as
django-multisite
aliases
Troubleshooting
- Domains in
MULTISITE_CMS_URLS
must be the same created in your database (via the interface inHome › Sites › Sites
).
.. |Gitter| image:: https://img.shields.io/badge/GITTER-join%20chat-brightgreen.svg?style=flat-square :target: https://gitter.im/nephila/applications :alt: Join the Gitter chat
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/djangocms-multisite.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-multisite :alt: Latest PyPI version
.. |PyVersion| image:: https://img.shields.io/pypi/pyversions/djangocms-multisite.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-multisite :alt: Python versions
.. |Status| image:: https://img.shields.io/travis/nephila/djangocms-multisite.svg?style=flat-square :target: https://travis-ci.org/nephila/djangocms-multisite :alt: Latest Travis CI build status
.. |TestCoverage| image:: https://img.shields.io/coveralls/nephila/djangocms-multisite/master.svg?style=flat-square :target: https://coveralls.io/r/nephila/djangocms-multisite?branch=master :alt: Test coverage
.. |TestCoveralls| image:: https://coveralls.io/repos/github/nephila/djangocms-multisite/badge.svg?branch=master :target: https://coveralls.io/github/nephila/djangocms-multisite?branch=master :alt: Test coverage
.. |License| image:: https://img.shields.io/github/license/nephila/djangocms-multisite.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-multisite/ :alt: License
.. |CodeClimate| image:: https://codeclimate.com/github/nephila/djangocms-multisite/badges/gpa.svg?style=flat-square :target: https://codeclimate.com/github/nephila/djangocms-multisite :alt: Code Climate