postgres.fields.HStoreField

class HStoreField(**options) [source]

A field for storing mappings of strings to strings. The Python data type used is a dict.

To use this field, you’ll need to:

  1. Add 'django.contrib.postgres' in your INSTALLED_APPS.
  2. Setup the hstore extension in PostgreSQL before the first CreateModel or AddField operation by adding a migration with the HStoreExtension operation. For example:

    from django.contrib.postgres.operations import HStoreExtension
    
    class Migration(migrations.Migration):
        ...
    
        operations = [
            HStoreExtension(),
            ...
        ]
    

    Creating the extension requires a database user with superuser privileges. If the Django database user doesn’t have superuser privileges, you’ll have to create the extension outside of Django migrations with a user that has the appropriate privileges. In that case, connect to your Django database and run the query CREATE EXTENSION IF NOT EXISTS hstore;

You’ll see an error like can't adapt type 'dict' if you skip the first step, or type "hstore" does not exist if you skip the second.

Note

On occasions it may be useful to require or restrict the keys which are valid for a given field. This can be done using the KeysValidator.

doc_Django
2016-10-09 18:39:18
Comments
Leave a Comment

Please login to continue.