Python Django DRY使用外键的冗长名称?

Python Django DRY使用外键的冗长名称?,python,django,Python,Django,有没有办法让某个字段的详细名称成为我最棒的名字,而不需要明确说明?(即,使用与详细名称相关的类作为默认字段详细名称,而不是使用属性名称) 我实际上认为这应该是Django的默认行为 注意:我正在使用Django 1.11查看源代码,它似乎是在RelatedField类的方法中实现的: class ModelA(models.Model): class Meta: verbose_name = 'my awesome name' class ModelB(models.M

有没有办法让
某个字段
的详细名称成为
我最棒的名字
,而不需要明确说明?(即,使用与详细名称相关的类作为默认字段详细名称,而不是使用属性名称) 我实际上认为这应该是Django的默认行为


注意:我正在使用Django 1.11查看源代码,它似乎是在
RelatedField
类的方法中实现的:

class ModelA(models.Model):
    class Meta:
        verbose_name = 'my awesome name'

class ModelB(models.Model):
    some_field = models.ForeignKey(ModelA)
if self.verbose_name is None:
    self.verbose_name = self.remote_field.model._meta.verbose_name
verbose\u名称
也在
字段
类的方法中设置:

class ModelA(models.Model):
    class Meta:
        verbose_name = 'my awesome name'

class ModelB(models.Model):
    some_field = models.ForeignKey(ModelA)
if self.verbose_name is None:
    self.verbose_name = self.remote_field.model._meta.verbose_name
此方法首先运行,因此当运行
RelatedField
类的方法时,verbose\u name不再是
None
。我不清楚为什么首先运行
字段
类的方法


注意:我检查了GitHub上的当前源代码,它很可能是比您的代码更新的版本,因为您的
ForeignKey
没有版本2.0中要求的
on\u delete
参数。

回答非常好!但更进一步:该怎么办?定义自定义的
ForeignKey
类?有关这方面的讨论,请参见。遗憾的是,由于不向后兼容,状态为
wontfix
,但是注释提供了另一个选项,提供了verbose\u name作为
verbose\u name=ModelA.\u meta.verbose\u name
@ikkuh,非常感谢您的调查:)据我在会谈中了解,这一功能最初是有效的,但他们在某个时候因为另一个功能而打破了它,然后,ans没有发现修复它的有用方法,似乎存在
\u meta
解决方案,这是一个可接受的解决方案。