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"]
我的目标是让我的 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"]