Python 自定义用户模型Django上的外键

Python 自定义用户模型Django上的外键,python,django,python-3.x,django-models,Python,Django,Python 3.x,Django Models,我有以下两种型号用户(定制)和活动。一个用户只能连接到一个活动,但一个活动可以从多个用户条目中引用,因此,我有一个多对一关系,并且我通过以下方式创建了此关系: Task app models.py from django.utils import timezone from django.contrib.auth import get_user_model User = get_user_model() class Task(models.Model): id =

我有以下两种型号
用户
(定制)和
活动
。一个用户只能连接到一个活动,但一个活动可以从多个
用户
条目中引用,因此,我有一个多对一关系,并且我通过以下方式创建了此关系:

Task app
models.py

from django.utils import timezone
from django.contrib.auth import get_user_model
User = get_user_model()

class Task(models.Model):
    id          = models.AutoField(primary_key=True)
    responsible = models.ForeignKey(User, on_delete=models.CASCADE)
    task        = models.CharField(null=False, max_length=140)
    initial_date= models.DateField(default=timezone.now(), null=False)
    ending_date = models.DateField(default=timezone.now(), null=False)

Accounts app
models.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager

class MyAccountManager(BaseUserManager):

    def create_user(self, email, username, password=None):

        if not email:
            raise ValueError("User must have an email address.")
        if not username:
            raise ValueError("User must have a username.")

        user = self.model(email=self.normalize_email(email),username=username,)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, username, password):

        user = self.create_user(email=self.normalize_email(email),username=username,password=password,)
        user.is_admin = True
        user.is_staff = True
        user.is_superuser = True
        user.save(using=self._db)
        return user


class Account(AbstractBaseUser):
    email        = models.EmailField(verbose_name="email", max_length=60, unique=True)
    username     = models.CharField(max_length=30, unique=True)

    # The following fields are required for every custom User model
    last_login   = models.DateTimeField(verbose_name='last login', auto_now=True)
    date_joined  = models.DateTimeField(verbose_name='date joined', auto_now_add=True)
    is_admin     = models.BooleanField(default=False)
    is_active    = models.BooleanField(default=True)
    is_staff     = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)

    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = ['username']

    objects = MyAccountManager()

    def __str__(self):
        return self.email

    def has_perm(self, perm, obj=None):
        return self.is_admin

    def has_module_perms(self, app_label):
        return True
我已经完成了迁移,但是与FK的关系没有成功,甚至当我尝试对
活动
模型进行简单的查询设置时,例如
q=Activity.objects.all()
我得到
编程错误:列活动\u活动.responsible\id不存在
。在与自定义
用户的外键关系中,我缺少了哪一步?任何帮助、评论或编辑都将不胜感激:)

我对FK关系的期望结果

id | responsible |  task           | initial_date | ending_date
-------------------------------------------------------------
4  |  roger_785  | Refactor code   |   2020-01-16 |    None
5  |  mauro_12   | Fix the network |   2020-01-10 |    None

将导入用户更改为:

from django.conf import settings 
User = settings.AUTH_USER_MODEL

您的自定义用户类名为
Account
,您有FK to
User
?我使用
User=get\u User\u model()
来引用我的自定义用户类模型。错误是关于
活动
表中不存在的
责任id
,而您的模型是
任务
,这是一个输入错误吗?很好!我做了更正,但结果仍然相同。您是否在
settings.py
中设置了
AUTH\u USER\u MODEL
,以指向您编写的自定义用户模型?