In general, the philosophy behind Django is that programmers modify
code, editors/authors modify content. The idea is that editors/authors
don't know enough about code and can sometimes get themselves into a
jam. So it's best to not allow editors/authors to modify the code.
See "Wordpress plugin hell"[1] for reference.
Of course, just because Django doesn't encourage author-installed
plugins doesn't mean that you can't do it. Django CMS has an addon
marketplace[2], for example.
One thing that might help is to note that settings.py is just a python
module. You can call normal python code inside that module. So, for
example, you could store all your settings in a database. There are
some examples of this kind of thing under the heading "live
settings"[3].
[1]
https://www.google.com/search?q=wordpress+plugin+hell
[2]
https://marketplace.django-cms.org/en/addons/
[3]
https://djangopackages.org/grids/g/live-setting/