9

我有一个模型,其中包含FileField如下

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

问题是如何将“{{ MEDIA_ROOT}}/logos/anonymous.jpg”之类的默认文件添加到此文件字段?

4

3 回答 3

15

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

class Employer(models.Model):
        logo = models.FileField(storage=FileSystemStorage(location=settings.MEDIA_ROOT), upload_to='logos', default='settings.MEDIA_ROOT/logos/anonymous.jpg')
于 2011-07-18T23:42:34.200 回答
0

由于上面的解决方案对我来说并没有真正起作用(settings.MEDIA_ROOT 没有被解释,我想 gitignore 媒体文件夹)这里有一个(有点 hacky)解决方案,它允许我在 Image/FileField 中指定一个静态文件作为默认文件:

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

骇人听闻的部分是,如果您的 MEDIA_URL 具有多个级别“..”是不够的(但是您可以简单地使用“../../”)。

于 2017-01-04T12:08:02.340 回答
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/'
于 2018-07-17T17:10:31.210 回答