新的Django 1.8提供了HstoreField。 我用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添加到我的管理界面?
答案 0 :(得分: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 9.1时遇到了一些问题,因为没有立即可用的HStore,因此您可能需要在数据库上运行以下命令:
CREATE EXTENSION hstore;