2014-12-10 7 views
1

У меня есть проблема, чтобы создать уникальное поле электронной почты на столе AUTH_USERДжанго 1,7 AUTH_USER уникальный электронный

В Django версии 1.6 Я добавил, что строка в huote/settings.py и все они работают хорошо User._meta.get_field («электронная почта») ._ уникальный = True

В 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

вы должны создайте настраиваемую миграцию, чтобы создать уникальное ограничение для базы данных.

см https://docs.djangoproject.com/en/1.7/topics/migrations/

вы можете:

  • ovverride миграций модели пользователя с помощью MIGRATION_MODULES, но это, вероятно, будет berak модернизации Джанго

  • создать пользовательскую миграцию в yuor приложение, с помощью runsql

В любом случае вам нужен код (User._meta.get_field('email')._unique=True), чтобы выровнять django.

+0

спасибо за помощь! – aspel

0

я создаю файл в моем каталоге приложения и добавить уникальный индекс для таблицы 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);") 
    ] 
Смежные вопросы