Django "xxxxxx Object" настройка отображения в боковой панели действий администратора
Я хотел бы изменить поведение по умолчанию, как администратор последние изменения боковой панели отображает имя "объекты" добавил. См. рисунок ниже:
Я хотел бы изменить, как они называются в админке. В идеале я хотел бы иметь возможность изменить его с объекта "MyModelName" на, как в примере объекта "Policy", что-то вроде "Policy: {{ значение поля "Policy Name" политики. }}.
Я думал, что __unicode__
для меня Модель пациента справилась с этим, но, похоже, нет. Любая помощь приветствуется.
6 ответов:
__unicode__
для этого. Ваша модель должна выглядеть примерно так:class SomeModel(models.Model): def __unicode__(self): return 'Policy: ' + self.name
на Python 3 вам нужно использовать
__str__
:def __str__(self): return 'Policy: ' + self.name
С помощью
__str__
метод работает на Python3 и Django1. 8:class MyModel(models.Model): name = models.CharField(max_length=60) def __str__(self): return 'MyModel: {}'.format(self.name)
строка, которую вы видите, исходит от
__unicode__
метод, как уже упоминалось. Но дело в том, что админ сохраняет строковое представление объекта при создании событий, поэтому если вы добавляете__unicode__
реализация после сохранения записи журнала вы не увидите новых заголовков на старых элементах, только после того, как вы сделаете какое-то новое действие
ответы с упоминанием
__str__
и__unicode__
методы являются правильными. Как указано в docs однако, начиная с версии 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"
вы можете использовать выше в non -
Model
объекты, а также.