擅长:python、mysql、java
<p>最好的解决方案是使用<strong><code>FileField</code></strong>而不使用显式的<strong><em>^{<cd2></em></strong>类。<br/><br/></p>
<pre><code># settings.py
if DEBUG:
DEFAULT_FILE_STORAGE = 'api.storage_backends.PublicMediaStorage'
else:
DEFAULT_FILE_STORAGE = 'api.storage_backends.PrivateMediaStorage'
# models.py
class Foo(models.Model):
file = models.FileField() # without storage
</code></pre>
<p>在文件上载过程中,Django将以<strong><em>lazy</em></strong>方式调用<code>DEFAULT_FILE_STORAGE</code>类。<br/></p>
<h3>注</h3>
<p>这些设置不会使用<strong><em><code>storage</code></em></strong>参数创建迁移文件</p>
<hr/>
<h2>更新-1</h2>
<p>如果您想对存储进行更多控制,请创建您自己的自定义文件字段并在模型中连接起来</p>
^{pr2}$