Как получить доступ к данным модели при переопределении шаблонов администратора Django? - PullRequest
2 голосов
/ 29 июня 2010

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

Я создаю простое приложение для создания галереи фотографий.Существует четыре галереи, каждая из которых содержит фотографию (фотография состоит из изображения «до», изображения «после» и подписи к нему).Я пытаюсь использовать django-admin, чтобы пользователи могли кликать по галерее, а затем добавлять фотографии.

Я использую TabularInline для редактирования фотографий в каждой галерее.В дополнение к столбцам по умолчанию на TabularInline, я хотел бы добавить столбец, который показывает предварительный просмотр фотографии «до» и «после» (для этого я использую easy-thumbnails).После долгих поисков кажется, что лучший способ сделать это - переопределить шаблон django-admin tabularInline.html и добавить столбец самостоятельно - поэтому я создал еще одну копию и сейчас пытаюсь ее отредактировать.

Я хотел бы просто сослаться на объект Photo в шаблоне администратора Django, который я переопределяю, но я не знаю подходящий тег для использования. Мне нужна ссылкатак что я могу использовать его в сочетании с тегом миниатюр easy-thumbnails ... но я не могу понять тег шаблона, который ссылается на объект.Я пробовал перебирать объекты ModelForm, FormSet и FieldSet, но ни один из них не дает мне прямой ссылки на объект.

# models.py

class Gallery(models.Model):
    name = models.CharField(max_length=200)
    url = models.CharField(max_length=200)
    desc = models.TextField()

    def __unicode__(self):
    return self.name

class Photo(models.Model):
    gallery = models.ForeignKey(Gallery)
    before = models.ImageField(upload_to='gallery')
    after = models.ImageField(upload_to='gallery')
    caption = models.CharField(max_length=1000)
    order = models.IntegerField(blank = True, null = True)

def __unicode__(self):
        return "Photo " + str(self.order)    

# admin.py
class GalleryForm(forms.ModelForm):
model = Gallery
class Media:
    js = (
        '/assets/js/jquery-1.4.2.min.js',
        '/assets/js/jquery-ui-1.8.2.custom.min-admin-sortable.js',
        '/assets/js/menu-sort.js',
    )        

class PhotoInline(admin.TabularInline):
    model = Photo
    extra = 1
    template = "admin/tabular-thumbnails.html"

admin.site.register(Gallery, 
inlines=[PhotoInline],
form = GalleryForm)

Заранее большое спасибо, и, пожалуйста, дайте мне знать, если есть какая-либо дополнительная информацияЯ могу предложить.Я использую Django 1.1

Ответы [ 2 ]

4 голосов
/ 29 июня 2010

{{ form.instance }} всегда будет экземпляром модели, связанным с формой модели, при условии, что он есть.

(Обратите внимание, что `` {{formset.instance}} `` является экземпляром родительской модели ввстроенная форма).

0 голосов
/ 06 марта 2019

У меня в Django 2.1 {{adminform.form.instance.field_name}} работал.

...