2015-04-06 238 views
2

新的Django 1.8提供了HstoreField。 我已經擴展用戶模型HstoreField數據Django 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', 
) 

還要注意的是每Django文檔,Psycopg2 2.5 or higher is required

一旦你已經證實了上述,你應該能夠進入你的data領域的以下內容:

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

我遇到了一些麻煩的Postgres沒有HStore立即可用9.1,所以你可能需要在您的數據庫上運行以下內容:

CREATE EXTENSION hstore;