Файл по умолчанию 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/'