Django FileField файл по умолчанию - PullRequest
7 голосов
/ 19 июля 2011

У меня есть модель, которая содержит FileField, как показано ниже

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

Вопрос в том, как добавить в это поле файл по умолчанию, например "{{MEDIA_ROOT}} / logos / anonymous.jpg"?

Ответы [ 3 ]

14 голосов
/ 19 июля 2011

Вы можете указать файл по умолчанию для использования в этом поле следующим образом:

class Employer(models.Model):
        logo = models.FileField(storage=FileSystemStorage(location=settings.MEDIA_ROOT), upload_to='logos', default='settings.MEDIA_ROOT/logos/anonymous.jpg')
0 голосов
/ 17 июля 2018

в файле вашей модели

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/'
0 голосов
/ 04 января 2017

Поскольку вышеупомянутое решение на самом деле не работает для меня (settings.MEDIA_ROOT не интерпретируется, и я хочу gitignore папку media), вот (как-то хакерское) решение, которое позволяет мне указывать статический файл по умолчанию в изображение / FileField:

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

Хакерская часть в том, что если у вас есть MEDIA_URL с более чем одним уровнем, то «..» будет недостаточно (но тогда вы можете просто пойти с «../../').

»
...