Django FileField默认文件

时间:2011-07-18 23:40:21

标签: django django-models default-value filefield

我的模型包含FileField,如下所示

class Employer(models.Model):
        logo = models.FileField(storage=FileSystemStorage(location=settings.MEDIA_ROOT), upload_to='logos')

问题是如何在此文件字段中添加“{{MEDIA_ROOT}} / logos / anonymous.jpg”等默认文件?

3 个答案:

答案 0 :(得分:14)

您可以指定用于该字段的默认文件,如下所示:

class Employer(models.Model):
        logo = models.FileField(storage=FileSystemStorage(location=settings.MEDIA_ROOT), upload_to='logos', default='settings.MEDIA_ROOT/logos/anonymous.jpg')

答案 1 :(得分:0)

由于上面的解决方案并不适合我(settings.MEDIA_ROOT没有被解释,我想gitignore媒体文件夹)这里是一个(某种程度上hacky)解决方案,它允许我指定一个静态文件作为默认值图像/ FileField字段:

image = models.ImageField(upload_to="image/", default='..{}img/dashboard/default-header.jpg'.format(settings.STATIC_URL),
                          verbose_name=_(u'image'))

hacky部分是,如果你有一个超过一个级别的MEDIA_URL'..'是不够的(但是你可以简单地用'../../')。

答案 2 :(得分:0)

在您的模型文件中

logo = models.FileField(upload_to='logos', default='logos/logo.png')
titre = models.CharField(max_length=100)

在您的设置中添加

MEDIA_ROOT =  os.path.dirname(os.path.abspath(__file__))
MEDIA_URL = '/logos/'