0

フォーム html:

<form action='/register/' method = 'post'>{% csrf_token %}
    ...
    <label>Avatar: </label><input type='file' name='avatar' value='' /><br />
    <input type = 'submit' name='submit' value='Sign up' />
</form>

models.py

class Employee(models.Model):
    ...
    avatar = models.ImageField(upload_to = 'avatar', blank = True, null = True)
    ...

とviews.py

def register(request):
    success = False
    message = ''
    try:
        newE = Employee.objects.create(...
                                avatar = request.POST['avatar'])
        success = True
        message = 'Register successful!'
        return HttpResponse(json.dumps({'success':str(success).lower(), 'message':message}))
    except:
        Employee.objects.filter(email = request.POST['email']).delete()
        message = 'Can\'t create a new account!'
        return HttpResponse(json.dumps({'success':str(success).lower(), 'message':message}))

設定.py

MEDIA_ROOT = '/home/dotcloud/data/media/'
MEDIA_URL = '/media/'

django 管理ページを使用すると、画像が読み込まれて保存されます: http://training-hongquan156.dotcloud.com/media/ avatar /image.png ですが、html フォームのアップロード写真を使用すると、画像がアップロードされず、保存されません。フォルダ ' avatar ' にパスを保存します: http://training-hongquan156.dotcloud.com/media/image.png と画像を読み込めません...何が問題ですか?

4

1 に答える 1

4

正すべきだ

<form action="/register/" method="post">

<form action="/register/" enctype="multipart/form-data" method="post">

アップロードされたファイルを処理する

request.FILES['avatar']

次に、 dir$upload_toで見つけます。/home/dotcloud/data/media/photo

于 2012-06-21T10:18:37.323 に答える