Файл по умолчанию Django FileField

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

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

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

3 ответов


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

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

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

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

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


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

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/'