2015-04-06 2 views
2

Новый Django 1.8 обеспечивает HstoreField. я продлил модель пользователя с данными HstoreFieldDjango 1.8 Интерфейс администратора HstoreField

**#models.py** 
from django.contrib.postgres.fields import HStoreField 
from django.contrib.auth.models import AbstractUser 


class Profile(AbstractUser): 

    data = HStoreField(blank=True) 

    def __unicode__(self): 
     return self.email 

**#admin.py** 
from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 

@admin.register(Profile) 
class ProfileAdmin(UserAdmin): 
    pass 

Теперь, как я могу добавить HstoreField в мой админ интерфейс?

ответ

2

Убедитесь, что django.contrib.postgres был добавлен в установленных приложений:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.postgres', 
    'yourapp', 
) 

отметить также, что в соответствии с Джанго Docs, Psycopg2 2.5 or higher is required.

После того, как вы подтвердили выше, вы должны быть в состоянии ввести следующее в вашем data поле:

{"a": "1", "b": "2"}

У меня были некоторые проблемы с Postgres 9.1 не имеющих HStore немедленно доступны, так что вам, возможно, потребуется для запуска в базе данных:

CREATE EXTENSION hstore;

Смежные вопросы