2

新的 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 添加到我的管理界面?

4

1 回答 1

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 或更高版本

确认上述内容后,您应该能够在您的data字段中输入以下内容:

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

我在 PostGres 9.1 中没有立即使用 HStore 时遇到了一些问题,因此您可能需要在数据库上运行以下命令:

CREATE EXTENSION hstore;

于 2015-04-15T04:19:56.837 回答