Custom View на столе в консоли администрирования - PullRequest
1 голос
/ 20 сентября 2011

В моем приложении Django есть простая таблица, которая выглядит следующим образом:

class Setting(models.Model):
    group = models.CharField(null=False, max_length=255)
    name = models.CharField(null=False, max_length=255)
    value= models.CharField(null=False, max_length=255)

По причинам, я храню данные в виде пар ключ-значение. Я - консоль администрирования, я хотел бы представить эту модель в развернутом виде, то есть транспонировать строки в столбцы. Я бы хотел, чтобы он вел себя как любая другая модель админа.

Например, когда запись будет сохранена, я буду перебирать поля и сохранять их, что я буду делать методом переопределенного менеджера. Когда администратор пытается перечислить все строки из этого представления, Id будет перебирать пары ключ-значение и поворачивать их.

Есть идеи, как этого добиться?

Спасибо

1 Ответ

0 голосов
/ 23 февраля 2012

Простое решение - сделать поля в объекте администратора список редактируемым :

class SettingsAdmin(admin.ModelAdmin):
    list_display = ('group', 'name', 'value')
    list_editable = ('value',)    # Fields that will be editable
    list_display_links = ()

Если это неудовлетворительно, вы можете использовать файл пользовательского шаблона для измененияПосмотреть список.Вам необходимо подготовить файл шаблона, который будет отображать ваши данные и указать путь в ModelAdmin:

class SettingsAdmin(admin.ModelAdmin):
    change_list_template = 'setting_change_list.html'
...