Django FileField默认文件

brs*_*gic 7 django django-models default-value filefield

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

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

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

rol*_*one 14

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

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

  • 如何将默认参数`settings.MEDIA_ROOT`插入字符串中的正确值? (7认同)
  • 不认为这个解决方案可以跨环境扩展吗?例如,如果生产实例运行 S3,“MEDIA_ROOT”之类的东西是否有效?而且我认为硬编码的“FileSystemStorage”也不起作用。 (2认同)