1

valums / file-uploaderをdjangoアップロードで実行し、モデルフィールド(FileField)で使用したい

基本的なdjangoモデル:

class Image(models.Model):
    user = models.ForeignKey(User)
    url = models.FileField(upload_to='%Y/%m/%d')

基本的なビュー、非ajaxアップロードでの作業:

def ajax_upload(request):
    if request.method == 'POST':
        newfile = Image()
        newfile.user = request.user
        file_content = ContentFile(request.FILES['file'].read())
        file_name = request.FILES['file'].name
        newfile.url.save(file_name, file_content)
        results = {'url': newfile.url, 'id': newfile.id}
        return HttpResponse(json.dumps(results))
    raise Http404

問題は、valums Uploaderがファイルを「リクエスト」ファイルに入れず、POSTに入れ、djangoがクエリとして取得することです。

トップコードでそれを使用すると、djangoは次のように述べています。

「キー'ファイル'が見つかりません」

私が変更した場合:

file_content = ContentFile(request.POST)

djangoのコメント:

予想される読み取りバッファー、QueryDictが見つかりました

私はそれを機能させることができますが、それでもdjangoのネイティブファイルのアップロードを保持したいので、はるかにクリーンです。

4

1 に答える 1

2

使用するrequest.body(またはrequest.raw_post_data1.4より古い場合)

于 2012-04-17T04:15:36.593 に答える