Закрыть

Для эффективной работы на сайте используются cookie и обработка персональных данных. Пользуясь этим сайтом, вы соглашаетесь с правилами использования сайта. Подробнее

Цитата дня

linebreak in admin django. Разделить на строчки поле TextField в админке или вывести html в ячейке таблицы при редактировании списка объектов

14 ноября 2014 г. 23: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 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование данной статьи, расположенной на настоящей странице http://vivazzi.ru/it/linebreak-in-admin-django/:

Разрешается копировать статью с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/linebreak-in-admin-django/">http://vivazzi.ru/it/linebreak-in-admin-django/</a>

Подробнее: Правила использования сайта

Вам нужно саморазвиваться или вы хотите зарабатывать деньги?

Или вы ищите хорошие IT сервисы или книги? Сохраните свое время и взгляните на мою подборку рекомендаций, которыми постоянно пользуюсь.
Посмотреть рекомендации

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте