0

私はDjangoでフォームを持っています

class BusinessForm(forms.Form):
    name = forms.CharField( required = True,
                             max_length=MAX_NAME_LENGTH,                                
                             widget=forms.TextInput(attrs={'placeholder': 'e.g Boston Market'}))        
    image = forms.ImageField()

このモデルに属する

class Business(models.Model):
    """ Describes Bussines data type """    
    name = models.CharField(max_length=BUS_NAME_LENGTH)         

    img = models.ImageField( upload_to = UPLOAD_TO )

どこUPLOAD_TO = 'business/images'

そしてsettings.pyには、次のように定義されたメディアルートがあります

# Media Root - uploaded images
MEDIA_ROOT = '/uploads/'

フォームを介してアップロードした後、データベースに次のような URL が表示されます

クエリの mysql データベースに表示される URL

ただし、ファイルシステムではファイルが表示されません。ローカルホストのテスト環境で実行しています。Windows OS を使用しています。

空のフォルダー - エクスプローラー

何故ですか?フォルダーにいくつかのアクセス許可を設定する必要がありますか? もしそうなら、デプロイ時にこれが本番環境で機能することを確認するにはどうすればよいですか? ありがとう。

4

1 に答える 1

2

これは、 が適切に構成されていないためMEDIA_URLMEDIA_ROOT発生しています。次のコードを settings.py に追加します。

MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, "uploads")

ノート

が設定ファイルで定義されていない場合BASE_DIRは、ファイルの先頭に次のコードを追加します。

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
于 2015-06-04T07:06:10.397 に答える