自定义用户管理器中的外键

Foreign key in custom user manager

我正在尝试在 Django 中创建自定义用户模型,使用 ForeignKey 作为 required_field。 我的经理如下:

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

当尝试通过 manage.py 使用 createsuperuser 时,发生以下异常

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

状态class存在于account.models,模块名为account

我不知道如何创建用户,因为需要 State 实例。

用户模型从该模块导入以设置User.objects = CustomUserManager()。您可以将 State 移动到不同的 module/app 或将此管理器定义移动到模型中。