pat*_*ckn 93 django django-models django-admin
我想更改管理员最近更改边栏显示添加的"对象"名称的默认行为.请参考下图:

我想更改这些在管理员中的命名方式.理想情况下,我希望能够将其从"MyModelName对象"更改为"策略"对象示例中的"策略:{{策略的"策略名称"字段的值.}}.
我以为__unicode__我的病人模型处理了这个问题,但似乎没有.任何帮助表示赞赏.
dan*_*son 151
__unicode__做到了.你的模型应该是这样的:
class SomeModel(models.Model):
def __unicode__(self):
return 'Policy: ' + self.name
Run Code Online (Sandbox Code Playgroud)
在Python 3上,您需要使用__str__:
def __str__(self):
return 'Policy: ' + self.name
Run Code Online (Sandbox Code Playgroud)
Adi*_*ana 26
使用该__str__方法适用于Python3和Django1.8:
class MyModel(models.Model):
name = models.CharField(max_length=60)
def __str__(self):
return 'MyModel: {}'.format(self.name)
Run Code Online (Sandbox Code Playgroud)
Dmi*_*nko 13
你看到的字符串来自__unicode__方法,正如其他人提到的那样.但问题是管理员在创建日志事件时会保存对象的字符串表示形式,因此如果__unicode__在保存日志条目后添加实现,则只有在您创建一些新活动后才能看到旧项目的新标题
这些问题的答案提__str__和__unicode__方法是正确的.正如所陈述的文档,但是由于1.6版(我认为),你可以使用python_2_unicode_compatible装饰商都的Python 2和Python 3:
from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class MyClass(models.Model):
def __str__(self):
return "Instance of my class"
Run Code Online (Sandbox Code Playgroud)
您也可以在非Model对象中使用上述内容.
这可以工作,使用 def str (self): 返回 self.title
使用类似的东西:
class Blog(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45251 次 |
| 最近记录: |