Django 自定义登录,如何将 ForeignKey 添加到 REQUIRED_FILED

问题描述

我尝试为 Django 创建自定义登录名,以及

中的字段之一

用户(AbstractBaseUser)

class User(AbstractBaseUser): 
    user_email      = models.EmailField(verbose_name='Email right here',max_length=70,unique=True,primary_key=True)
    password        = models.CharField(max_length=256)
    password_salt   = models.CharField(max_length=15)
    create_date     = models.DateTimeField(auto_Now=True)
    role            = models.ForeignKey(Roles,on_delete=models.PROTECT)
    info            = models.ForeignKey(PersonalInfo,on_delete=models.CASCADE)

    USERNAME_FIELD  = 'user_email' #username
    required_FIELDS = [info.lastname,info.firstname] #email and pass is required by defaut

    object          = UserManager()

    def __str__(self): 
        """
        Return user email 
        """
        return self.user_email

    def get_email(self): 
        """
        Return user email 
        """
        return self.user_email
    
    def get_info(self): 
        """
        return user info
        """
        return self.info

我的 PersonalInfo 模型如下:

class PersonalInfo(models.Model): 
    id          = models.AutoField(primary_key=True)
    work_email   = models.EmailField(verbose_name=' email',blank=True)
    email       = models.EmailField(blank=True)
    lastname    = models.CharField(max_length=50,db_column='Last name',verbose_name="Last name")
    firstname   = models.CharField(max_length=50,db_column='First name',verbose_name="First name")
    address     = models.CharField(max_length=255,null=True,blank=True)
    work_phone  = models.CharField(max_length=20,blank=True,db_column='Work Phone',unique=True)
    cell_phone  = models.CharField(max_length=20,db_column='Cell Phone',unique=True)
    home_phone  = models.CharField(max_length=20,db_column='Home Phone',unique=True)
    note        = models.CharField(max_length=1000,blank=True)

    class Meta: 
        db_table = 'PersonalInfo'


    def __str__(self): 
        """
        return lastname and firstname
        """
        return self.firstname + ','+ self.lastname

我得到了这个错误

required_FIELDS = [info.lastname,info.firstname]
AttributeError: 'ForeignKey' object has no attribute 'lastname'

如何在 info.lastname 中包含 info.firstnamerequired_FIELDS

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)