Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does django-constance admin supports database backend?

I'm trying to setup the admin to show settings meant to be stored in database backend (Postgres 9.5.0). I manually created values in shell_plus as follows:

In [1]: from constance.backends.database.models import Constance

In [2]: first_record = Constance.objects.get(id=1)

In [3]: first_record Out[3]:

pg-admin properly shows the entry although django admin doesn't show it at all. I ran migrate command for both databases (I have default and product databases) but the record still is not showing up. Certainly I can make it work with forcing to register with admin as follows: admin.site.register(Constance) but my question is if it's necessary?

like image 690
Regina Sas Avatar asked Jun 30 '26 23:06

Regina Sas


1 Answers

Yes, they do.

You need to manage dependencies, but you can just use next command to install:

pip install "django-constance[database]"

Also you need to add some additionl settings to your settings.py :

CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'

INSTALLED_APPS = (
    # other apps
    'constance.backends.database',
)

#optional - in case you want specify table prefix

CONSTANCE_DATABASE_PREFIX = 'constance:myproject:'

Then you need to apply migrations by running command python manage.py migrate database

For displaying settings inputs in admin you should specify them in your settings.py. There are various types of fields and you even can add your own types of fields using CONSTANCE_ADDITIONAL_FIELDS parameter.

CONSTANCE_CONFIG = {
    'THE_ANSWER': (42, 'Answer to the Ultimate Question of Life, '
                       'The Universe, and Everything'),
}

You can read more at documentation page.

like image 63
s_mart Avatar answered Jul 02 '26 14:07

s_mart



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!