linebreak in admin django. Разделить на строчки поле TextField в админке или вывести html в ячейке таблицы при редактировании списка объектов
15 ноября 2014 г. 4:26
Рассмотрим ситуацию, когда нужно вывести список доменных имён в списке объектов.
Допустим, мы хотим вести учёт пользователей, которые имеют свои доменные имена.
class Person(models.Model): name = models.CharField('Имя', max_length=255) domains = models.TextField('Доменные имена')
Теперь, если мы хотим видеть эту информацию в списке просмотра объектов Person
, то у нас будет следующее:
@admin.register(Person) class PersonAdmin(admin.ModelAdmin): list_display = ('name ', 'domains')
И создадим несколько пользователей с несколькими доменными именами, которые записываются каждый с новой строки. Мы увидим, что в админке они отображаются строчкой. Чтобы они были каждый домен с новой строки, можно поступить двумя способами.
1-ый способ: Настройка поля в admin.py
# admin.py @admin.register(Person) class PersonAdmin(admin.ModelAdmin): list_display = ('name ', 'domains') def domains(self, instance): return linebreaks(instance.domains) domains.short_description = 'Доменные имена' domains.allow_tags = True
2-ый способ: Настройка поля в models.py
# models.py class Person(models.Model): name = models.CharField('Имя', max_length=255) domains = models.TextField('Доменные имена') def get_domains(self, instance): return linebreaks(instance.domains) get_domains.short_description = 'Доменные имена' get_domains.allow_tags = True # admin.py @admin.register(Person) class PersonAdmin(admin.ModelAdmin): list_display = ('name ', 'get_domains')
Первый способ, на мой взгляд, лучше: меньше кода и модель не засоряется. Короче варианты я пока не нашёл.
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0