class ModelA(models.Model):
class Meta:
verbose_name = 'my awesome name'
class ModelB(models.Model):
some_field = models.ForeignKey(ModelA)
有没有办法让some_field的verbose_name成为我真棒的名字而不是明确的呢? (即使用详细名称相关类作为默认字段详细名称,而不是使用属性名称)
我实际上认为这应该是默认的Django行为.
注意:我正在使用Django 1.11
最佳答案 查看源代码,似乎这是在RelatedField类的
set_attributes_from_rel
方法中实现的:
if self.verbose_name is None:
self.verbose_name = self.remote_field.model._meta.verbose_name
verbose_name也在Field类的set_attributes_from_name
方法中设置:
if self.verbose_name is None and self.name:
self.verbose_name = self.name.replace('_', ' ')
首先运行此方法,因此当运行RelatedField类的方法时,self.verbose_name不再是None.我不清楚为什么首先运行Field类的方法.
注意:我检查了GitHub上的当前源代码,这很可能是比您的代码更新的版本,因为您的ForeignKey没有在2.0版本中需要的on_delete参数.