Django调用模型字段报AttributeError: 'Customer'对象无first_name属性求助
错误原因
Django模型字段的name参数作用为定义字段在模型实例上的属性名,而非后台展示的可读名称。你在定义first_name、last_name字段时传入了name='First name'、name='Last name'参数,导致这两个字段的实际实例属性名变为First name、Last name,而非你预期的first_name,调用self.first_name时自然会抛出属性不存在的错误。
解决方案
推荐调整字段参数,将name替换为用于设置后台展示名称的verbose_name参数即可,修改后的模型代码如下:
from django.db import models class Customer(models.Model): first_name = models.CharField(verbose_name='First name', max_length=20) last_name = models.CharField(verbose_name='Last name', max_length=20) def __str__(self) -> str: return self.first_name
修改完成后执行以下命令同步模型变更到数据库即可恢复正常:
python manage.py makemigrationspython manage.py migrate
内容的提问来源于stack exchange,提问作者Corec
相关产品推荐
相关产品推荐

