Python 如何从django管理界面更改django中的模型名称?
使用“verbose_name”,我们可以更改模型的名称,但我希望这个过程是动态的,就像从管理面板内部一样,它将被重命名,这样就不必硬编码Python 如何从django管理界面更改django中的模型名称?,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,使用“verbose_name”,我们可以更改模型的名称,但我希望这个过程是动态的,就像从管理面板内部一样,它将被重命名,这样就不必硬编码 有人能提出任何解决方案吗?您可以为此实现某种模型,该模型将存储更改后的模型名称,如: class ModelName(models.Model): model_key = models.CharField(max_length=128, unique=True) model_name = models.CharField(max_length
有人能提出任何解决方案吗?您可以为此实现某种模型,该模型将存储更改后的模型名称,如:
class ModelName(models.Model):
model_key = models.CharField(max_length=128, unique=True)
model_name = models.CharField(max_length=128)
def model_name(name):
try:
return ModelName.objects.get(model_key=name).model_name
except ModelName.DoesNotExist:
return name
接下来,我们可以创建一个惰性解析名称的类,如:
from django.utils.functional import lazy
model_name_lazy = lazy(model_name, str)
现在,我们可以将对象的名称设置为:
class MyModel(models.Model):
# ...
class Meta:
verbose_name = model_name_lazy('mymodel')
然后通过修改ModelName
模型,例如在Django管理页面上,您可以使用model\u键添加/更改ModelName
对象为'mymodel'
,然后该模型的详细名称将是相应的model\u name
字段