从抽象类继承时的信号问题

时间:2017-06-28 13:47:38

标签: python django

我的应用程序有不同类型的用户(父母,老师,学生),我创建了一个要继承的Profile抽象类。我试图使用接收器功能,这样无论何时创建用户,还会创建配置文件。

在管理页面中,当我尝试创建一个教师对象时,我需要先创建一个User对象,但是当我创建一个用户对象时,我遇到了一个错误" AttributeError:type object&#39 ;简介'没有属性'对象'"。

我怀疑这是因为Profile是一个抽象类,所以如果创建了一个User,它会导致错误来创建一个Profile?如果是这样,那么更好的方法是什么?我只是想在管理页面中手动创建一个Teacher对象。

#models.py
class Profile(TimeStampedModel):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    sex = models.CharField(max_length=1, choices=SEX)
    user_type = models.CharField(max_length=100, choices=USER_TYPE)

    class Meta:
        abstract = True

class Teacher(Profile):
    user_type = 'teacher'

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
        if created:
            Profile.objects.create(user=instance)

0 个答案:

没有答案