django文件上传未在模型中显示的文件

时间:2013-09-21 19:18:13

标签: django django-models django-admin

我有照片模型的外键,只有照片。

管理员将照片列为“照片对象”,而不是照片的文件名。

我尝试使用stackoverflow中的一些提示来显示文件名,但没有运气。

如何在管理员中显示文件名?

这是我的model.py:

class Photo(models.Model):
    photo = models.FileField(upload_to='uploads/%Y/%m/%d',null=True)

    def     filename(self):
        return os.path.basename(self.file.name)

    def clean(self):
        return os.path.basename(self.file.name)

1 个答案:

答案 0 :(得分:3)

两种方式:

首先,在Photo模型中,创建' __ unicode __ '方法

class Photo(models.Model):
    photo = models.FileField(upload_to='uploads/%Y/%m/%d',null=True)

    def filename(self):
        return os.path.basename(self.file.name)

    def clean(self):
        return os.path.basename(self.file.name)

    def __unicode__(self):
        return self.filename()

二: 在管理模型中(参见Django docs here

#In admin.py

from django import admin

class PhotoAdmin(admin.AdminModel):
    list_display("id", "filename")

    def filename(self, obj): # 'obj' represents a Photo instance
        return obj.filename()

admin.site.register(Photo, PhotoAdmin)