Django: Правильный способ расширить определенное поле в форме изменения администратора с помощью HTML? - PullRequest
0 голосов
/ 15 июля 2010

Допустим, у меня есть модель с полем на основе класса ImageField.

class Foo(models.Model):
    imagefile = models.ImageField('File', upload_to='foo/%Y/%m%/%d/')

Django добавляет - после первой загрузки - тег ввода типа file, чтобы я мог его изменить, и ссылку на изображение для его просмотра.

Я хочу, чтобы это оригинальное поле было специфичнымHTML), как есть (и ни в коем случае не создавайте его вручную), но также добавьте другой HTML / JS-код, скажем, чтобы включить предварительный просмотр миниатюр или добавить некоторые AJAX-вещи.Я также могу изобразить несколько других вариантов использования для других полей.

Какой правильный (скажем, простой / ненавязчивый) способ реализовать нечто подобное?

1 Ответ

2 голосов
/ 15 июля 2010

Вам нужно написать собственный виджет.Посмотрите на django.forms.widgets код существующего виджета FileInput, который вы можете разделить на подклассы и при необходимости переопределить метод render.Затем вам просто нужно будет назначить этот виджет для вашего файлового поля в форме администратора.

...