【发布时间】:2022-11-28 17:19:13
【问题描述】:
在我的应用程序中,我有以下模型:
class Category(BaseStampModel):
cat_id = models.AutoField(primary_key=True, verbose_name='Cat Id')
category = models.CharField(max_length=55, verbose_name='Category')
class MasterList(BaseStampModel):
master_list_id = models.AutoField(primary_key=True, verbose_name='Master List Id')
mast_list_category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, verbose_name='Category')
# Other fields ...
我的 BaseModel 看起来像这样:
class BaseStampModel(models.Model):
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='%(class)s_created', blank=True, null=True, on_delete=models.SET_NULL, verbose_name='Created by')
created_on = models.DateTimeField(auto_now_add = True, null=True, blank=True)
这样我就可以显示模型对象并创建/更新实例。
在我看来,当我想从模型中检索 verbose_name 时“类别“ 使用:
`model_fields = [(f.verbose_name, f.name) for f in Category._meta.get_fields()]`
我的浏览器出现以下错误:
AttributeError: 'ManyToOneRel' 对象没有属性 'verbose_name'
如果我从字段
mast_list_category中删除 FK 关系(使其成为简单的CharField),我不会收到错误。经历了数百万页,但还没有解决办法。
任何帮助非常感谢。
【问题讨论】:
标签: django django-models attributeerror many-to-one