对不起,如果这是一个明显的问题,但我一直在寻找几天,并没有能够拿出一个结果。如何在覆盖Django管理模板时访问模型数据?
我正在创建一个简单的照片库应用程序。有四个画廊,每个画廊都包含一张照片(该照片由'之前'图像,'图像和标题'之后')组成。我正在尝试使用django-admin允许用户点击一个图库,然后添加照片。
我正在使用TabularInline编辑每个图库内的照片。除了TabularInline的默认列以外,我还想添加一个显示“之前”照片和“之后”照片的缩略图预览的列(我正在使用简易缩略图)。经过大量搜索之后,似乎最好的方法是重写django-admin tabularInline.html模板并自己添加列 - 所以我创建了另一个副本,并试图现在编辑它。
我想要做的只是引用Django管理模板中的Photo对象,我重写 - 但我不知道使用适当的标记。我需要参考,所以我可以将它与简易缩略图缩略图标记一起使用...但对于我的生活,我无法弄清楚引用该对象的模板标记。我试着迭代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
非常感谢,这工作完美。 – 2010-06-29 13:08:02