1

行政

class PersonInlines(admin.StackedInline):
    model = Person
    extra = 0

class CompanyAdmin(admin.ModelAdmin):
    inlines = (PersonInlines,)
    fields = ('name', )

admin.site.register(Company, CompanyAdmin)

class PersonAdmin(admin.ModelAdmin):
    def image_thumbnail(self, obj):
        if obj.photo:
            image = FileObject(obj.photo.name)
            if image.filetype == "Image":
                return '<img src="%s" />' % image.version_generate(ADMIN_THUMBNAIL).url
    else:
        return ""

    image_thumbnail.allow_tags = True
    image_thumbnail.short_description = "Thumbnail"

    fields = ('first_name', 'last_name', 'photo')
    list_display = ('first_name', 'last_name', 'photo',)

admin.site.register(Person, PersonAdmin)

楷模

def upload_to(instance, filename):
    filename = time.strftime('%Y%m%d%H%M%S')
    ym = time.strftime('%Y%m')
    return 'uploads/%s/%s.jpg' % (ym,filename)

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

    photo = models.ImageField(u"Image (Upload)",upload_to=upload_to)
    company = models.ForeignKey('Company')

    def image(self):
        if self.photo:
            return FileObject(self.photo.name)
        return None


class Company(models.Model):
    name = models.CharField(max_length=30)
    def __unicode__(self):
        return self.name

错误“PersonAdmin.fields”指的是表单中缺少的字段“image_thumbnail”。

如何 Django 的 InlineModelAdmin TabularInline 或 TabularInline 显示缩略图

像这样

http://i.stack.imgur.com/hz2Ep.jpg

4

1 回答 1

0

你必须参考image_thumbnail而不是参考photo

fields = ('first_name', 'last_name', 'image_thumbnail')

尽管您可能会考虑使用这种mixin-approach

于 2012-04-20T17:01:26.303 回答