覆盖 Django 管理模板时如何访问模型数据?

Hak*_* B. 3 django django-admin

抱歉,如果这是一个显而易见的问题,但我已经搜索了几天,但未能得出结果。

我正在创建一个简单的照片库应用程序。有四个画廊,每个画廊包含一张照片(照片由“之前”图像、“之后”图像和标题组成)。我正在尝试使用 django-admin 允许用户单击图库,然后添加照片。

我正在使用 TabularInline 编辑每个图库中的照片。除了 TabularInline 上的默认列之外,我还想添加一个列,显示“之前”照片和“之后”照片的缩略图预览(我为此使用简单缩略图)。经过大量搜索后,最好的方法似乎是覆盖 django-admin tabularInline.html 模板并自己添加列 - 所以我创建了另一个副本并现在尝试编辑它。

我想做的只是引用我要覆盖的 Django 管理模板中的 Photo 对象 - 但我不知道要使用的适当标签。我需要参考,这样我就可以将它与 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)
Run Code Online (Sandbox Code Playgroud)

非常感谢,如果我可以提供任何其他信息,请告诉我。我正在使用 Django 1.1

小智 6

在 Django 2.1 中{{adminform.form.instance.field_name}}为我工作。