Внешний ключ в пользовательском менеджере пользователя - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать пользовательскую модель в django, используя ForeignKey как обязательное поле. Мой менеджер выглядит следующим образом:

from django.contrib.auth.models import BaseUserManager

from .models import State
class CustomUserManager(BaseUserManager):
    def create_user(self, email, first_name, state, password=None, **extra_fields):
        email = self.normalize_email(email)
        user = self.model(email=email, first_name=first_name, state=State(pk=state), **extra_fields)
        user.set_password(password)
        user.save()
        return user

    def create_superuser(self, email, first_name, state, password=None, **extra_fields):
        email = self.normalize_email(email)
        user = self.model(email=email, first_name=first_name, state=State(pk=state), **extra_fields)
        user.set_password(password)
        user.save()
        return user

При попытке использовать createuperuser через manage.py возникает следующее исключение:

from .models import State
ImportError: cannot import name 'State' from 'account.models'

Класс state существует в account.models, модуль вызываемая учетная запись

Я не знаю, как еще создать пользователя, поскольку требуется экземпляр состояния.

1 Ответ

0 голосов
/ 26 марта 2020

Пользовательская модель импортирует из этого модуля значение User.objects = CustomUserManager(). Вы можете переместить State в другой модуль / приложение или переместить это определение менеджера в модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...