我试图做这样的事情:
#core/models.py
from django.utils.translation import ugettext_lazy as _
from django.db import models
BaseModel(models.Model):
class Meta:
abstract = True
name = models.CharField(verbose_name=_(self.__name__ + ' name'))
...
...
...
#myapp/models.py
class MyModel(BaseModel):
#myapp2/models.py
class MyModel2(BaseModel):
因此,当访问MyModel.name
和MyModel2.name
的详细名称时,它们分别为'MyModel name'
和'MyModel2 name'
。
但是,由于self.__name__
类命名空间中没有BaseModel
,此代码不起作用。事实上,我在BaseModel
上有其他字段,我也想以这样的方式工作,即他们采用具体模型名称并以(%class_name% + ' %verbose name taken from BaseModel field verbose_name declaration%')
欢迎任何有关如何实现这一目标的建议。