Getting started
django-duke uses the django-configuration package to manage configuration.
This means that the first thing you need to do is install django-configuration and django-duke:
pip install django-configuration django-duke
# or
poetry add django-configuration django-duke
Then, you need to modify a settings.py, manage.py, wsgi.py and asgi.py file in your project's root directory according to the django-configuration documentation.
Next step is to get Duke's configuration class. You can do this by importing DukeConfiguration from django-duke:
# settings.py
from configurations import Configuration
from duke import get_configuration_class
DukeConfiguration = get_configuration_class()
class Base(DukeConfiguration, Configuration):
@property
def INSTALLED_APPS(self):
return super().INSTALLED_APPS + [
...
]
@property
def MIDDLEWARE(self):
return super().MIDDLEWARE + [
...
]
Notice
You need to inherit from DukeConfiguration before Configuration to make sure that Duke's configuration is applied first.
Also you need to use @property decorator for INSTALLED_APPS and MIDDLEWARE properties to make sure that Duke's configuration is applied after your project's configuration.
And finally, you need unpack urls from duke.urls into your project's urls.py:
# urls.py
from duke import get_urls
urlpatterns = [
...
*get_urls(),
...
]
# or
urlpatterns += get_urls()