2015-04-17 2 views
-2

я хочу, чтобы сделать внешний ключ и использовать settings.AUTH_USER_MODEL, но я получаю сообщение об ошибке, как это:ошибка Джанго 1.7 Настройка пользовательской модели аутентификации

ERRORS: 
kerajinan.Product.author: (fields.E300) Field defines a relation with model 'settings.AUTH_USER_MODEL', which is either not installed, or is abstract. 

это setting.py

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.sites', 
    'kerajinan', 
    'bootstrap3', 
    'registration', 
) 
AUTH_USER_MODEL = 'kerajinan.UserProfile' 

и это model.py:

from django.conf import settings 
from django.contrib.auth import get_user_model 
from django.db import models 
from django.utils import timezone 
from django.contrib.auth.models import User 
from django.db.models.signals import post_save 
from django.utils.text import slugify 
from django.db.models import ImageField 
from django.core.validators import RegexValidator 
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser, PermissionsMixin 

class Product(models.Model): 
    author   = models.ForeignKey('settings.AUTH_USER_MODEL') 
    userprofile  = models.ForeignKey('UserProfile') 
    title   = models.CharField(max_length=50) 

    def __str__(self): 
     return self.title; 

Помогите решить эту проблему?

+0

Показать класс модели auth – ruddra

ответ

2

Вы использовали буквенную строку «settings.AUTH_USER_MODEL» в вашем ForeignKey. Вы должны использовать фактическое значение настройки.

author = models.ForeignKey(settings.AUTH_USER_MODEL)