alex_deerk
@alex_deerk
В ответах некомпетентен. Пытаю Python

Django Admin как вывести ссылки?

Решил не делать свою админку, т.к. всё что надо есть в Django'вской.
Есть форма, которая выполняет функцию вроде Обратной связи. При сохранении формы в БД попадает некоторая информация и ссылка страницы, на которой была вызвана форма. Вопрос: Как вывести, эту ссылку в админке Django, чтобы они были кликабельны и ввели на ту страницу, а не на редактирование записи?
  • Вопрос задан
  • 2011 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Любое из полей ModelAdmin может быть функцией, формирующей всё, что заблагорассудится. Кусок из моего кода:
@admin.register(Order)
class OrderAdmin(admin.ModelAdmin):
    list_display = ('__str__', 'customer_link')

    def customer_link(self, obj):
        if obj.customer:
            return u'<a href="{0}">{1}</a>'.format(reverse('admin:auth_user_change', args=(obj.customer.pk,)), obj.customer)
        else:
            return obj.customer_fio
    customer_link.allow_tags = True
    customer_link.admin_order_field = 'customer'
    customer_link.short_description = Order._meta.get_field('customer').verbose_name.title()

И для пущей наглядности кусок модели Order:
@python_2_unicode_compatible
class Order(models.Model):
    customer = models.ForeignKey(User, verbose_name=u'Заказчик', null=True, blank=True, related_name='orders')
    customer_fio = models.CharField(u'ФИО заказчика', max_length=150)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы