AttributeError: 'User_Profile' object has no attribute '__name__'

AttributeError: 'User_Profile' object has no attribute '__name__'

我的目标是让我的 forms.py 将电子邮件表单内容发送到我的 Django 数据库中的不同模型,从 Django 中的默认用户模型到我定制的 User_Profile 模型。我相信如果我能修复上面的错误,我的目标就会完成。

在我的 forms.py 文件中,我从 model.py 导入一个 class,然后在 forms.py 中再次使用该函数,这就是导致错误的原因.我用 classes 对 __ name__ 进行了研究,据我了解,它与两次不同时间使用相同的 class 有关,并且不知道要 运行 之类的。如果有人能用 class 更好地解释 __name __ 并帮助我修复错误,我将不胜感激。

这是我的 models.py:

class User_Profile(models.Model):
    user = models.OneToOneField(User, null = True, blank = True, on_delete = models.CASCADE)
    name = models.CharField(max_length = 200, null = True)
    phone = models.CharField(max_length = 200, null = True)
    email = models.CharField(max_length = 200, null = True)
    profile_image = models.ImageField(null = True, blank = True)
    data_created = models.DateTimeField(auto_now_add = True, null = True)

    def __str__(self):
        return self.name

这是我在另一个目录中的 forms.py

class RegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta():
        model = User_Profile()
        fields = ["username", "email", "password1", "password2"]
        
        def __str__(self):
            return self.name

这个问题并不是真正的 __name__,它只是真正问题的表象。问题是因为在 RegisterForm 的 Meta class 中传递了一个实例,而不是 class。所以要修复:

    class Meta():
        model = User_Profile # <-- Remove the parens
        fields = ["username", "email", "password1", "password2"]