Django-админ. Ссылка для редактирования профиля пользователя из list_display - PullRequest
4 голосов
/ 25 октября 2011

Я вставил метод «создатель» в мою модель следующим образом:

def creator(self):
        return self.user

Тогда я бы добавил эту строку в Admin-класс этой модели ^

list_display = ('title','created_at','votes','creator')

И все было хорошо ... в этом столбце отображаются имена пользователей, но я хочу сделать ссылки из этих имен, которые будут перенаправлять меня на редактирование этих пользовательских профилей. Как я могу это сделать? Большое спасибо!

Ответы [ 3 ]

4 голосов
/ 25 октября 2011

Во-первых, добавьте 'user_link' в list_display. Затем добавьте это в свой ModelAdmin:

def user_link(self, obj):
        return '<a href="%s">%s</a>' % (
            urlresolvers.reverse('admin:auth_user_change', args=(obj.user.id,)), obj.user
            )
user_link.allow_tags = True
user_link.short_description = 'User'

(непроверенные)

0 голосов
/ 04 ноября 2018

В Django 2.0 вы больше не можете использовать allow_tags = True. Вместо этого вам нужно пометить строку как безопасную, вернув mark_safe("<a href="...">...</a>).

0 голосов
/ 19 апреля 2017

Есть лучшая альтернатива: raw_id_fields.

@admin.register(Ticket)
class AdminTicket(admin.ModelAdmin):
    fields = ['user', 'subject', 'message']
    raw_id_fields = ['user']

Вот как это будет выглядеть:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...