Python 我的数据填充在使用Django';用户模型。为什么?

Python 我的数据填充在使用Django';用户模型。为什么?,python,django,django-models,Python,Django,Django Models,这段代码工作得很好,它是一个与UserRating模型具有一对多关系的用户模型 视图: 型号: # this is model for user class User(models.Model): username = models.CharField(max_length=128, unique=True) email = models.EmailField(max_length=128, unique=True) profilepic = models.ImageFi

这段代码工作得很好,它是一个与UserRating模型具有一对多关系的用户模型

视图:

型号:

# this is model for user
class User(models.Model):
    username = models.CharField(max_length=128, unique=True)
    email = models.EmailField(max_length=128, unique=True)
    profilepic = models.ImageField(null=True)
    firstname = models.CharField(max_length=128, null=True)
    secondname = models.CharField(max_length=128, null=True)
    city = models.ForeignKey(City)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        # Uncomment if you don't want the slug to change every time the name changes
        # if self.id is None:
        # self.slug = slugify(self.name)
        self.slug = slugify(self.username)
        super(User, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.username

    @property
    def avg_rating(self):
        return self.userrating_set.all().aggregate(Avg('rating'))['rating__avg']


# this is the model for user ratings - one to many relationship with User
class UserRating(models.Model):
    user = models.ForeignKey(User)
    comment = models.CharField(max_length=500)
    for_username = models.CharField(max_length=128)
    rating = models.IntegerField(default=5)

    def __unicode__(self):
        return unicode(self.rating)
然而,一旦我使用Django的内置用户模型,它就会崩溃,如下所示(用户模型与UserProfile模型具有一对一关系,与UserRating具有一对多关系)

通过管理员页面添加用户配置文件时,会生成此错误:

super(type, obj): obj must be an instance or subtype of type

您必须在
super
调用中调用实际的超类;它是UserProfile,而不是User

def save(self, *args, **kwargs):
    self.slug = slugify(self.user.username)
    super(UserProfile, self).save(*args, **kwargs)
super(type, obj): obj must be an instance or subtype of type
def save(self, *args, **kwargs):
    self.slug = slugify(self.user.username)
    super(UserProfile, self).save(*args, **kwargs)