我在auth_user表
上创建唯一的电子邮件字段时遇到问题在Django 1.6版本上 我将该字符串添加到huote / settings.py中,一切正常 User._meta.get_field( '电子邮件')._独特=真
在1.7版本上,我尝试下面这个例子,因为我有错误 django.core.exceptions.AppRegistryNotReady:尚未加载模型。
但它不起作用
- huote / apps.py -
from django.apps import AppConfig
from django.contrib.auth.models import User
class YourAppConfig(AppConfig):
name="huote"
def ready(self):
User._meta.get_field('email')._unique=True
- “huote / __ init__.py” -
default_app_config = 'huote.apps.YourAppConfig'
答案 0 :(得分:0)
您必须创建自定义迁移以在数据库上创建唯一约束。
请参阅https://docs.djangoproject.com/en/1.7/topics/migrations/
你可以:使用MIGRATION_MODULES挖掘用户模型的迁移,但这可能是django的升级
使用runsql
在任何情况下,您仍然需要使用代码(User._meta.get_field('email')._unique=True
)来保持django对齐。
答案 1 :(得分:0)
我在app目录中创建文件,并为表auth_user
添加唯一索引huote /迁移/ 0001_initial.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.RunSQL("create unique index unique_auth_user on auth_user(email);")
]