<p>假设你有这样一个模型:</p>
<pre><code>class Stuff(models.Model):
class Meta:
verbose_name = u'The stuff'
verbose_name_plural = u'The bunch of stuff'
</code></pre>
<p>你有详细的\u名称,但你想定制应用程序\u标签也不同的显示在管理。不幸的是,拥有一些任意的字符串(带空格)是不起作用的,而且它也不是用来显示的</p>
<p>原来管理员用的是app\u标签。title()用于显示,以便我们可以使用重写的title方法创建一个小hack:str子类:</p>
<pre><code>class string_with_title(str):
def __new__(cls, value, title):
instance = str.__new__(cls, value)
instance._title = title
return instance
def title(self):
return self._title
__copy__ = lambda self: self
__deepcopy__ = lambda self, memodict: self
</code></pre>
<p>现在我们可以有这样的模型:</p>
<pre><code>class Stuff(models.Model):
class Meta:
app_label = string_with_title("stuffapp", "The stuff box")
# 'stuffapp' is the name of the django app
verbose_name = 'The stuff'
verbose_name_plural = 'The bunch of stuff'
</code></pre>
<p>伊奥尼尔的原始帖子<a href="https://blog.ionelmc.ro/2011/06/24/custom-app-names-in-the-django-admin/" rel="nofollow noreferrer">https://blog.ionelmc.ro/2011/06/24/custom-app-names-in-the-django-admin/</a></p>