2012-04-13 14 views
1

私はjqueryフォームプラグインhttp://jquery.malsup.com/form/#getting-startedを使用して画像をdjangoサーバー側にアップロードしています。エラーはありませんが、イメージはMEDIA_ROOTパスに格納されません。私は過去2日間、さまざまなテクニック(試したプラグイン)を試しましたが、何も動いていません。私はあなたのために簡単にするためにすべてを与えました。Django jquery ajax画像アップロード

私のHTMLコード:

<form id="uploadform" method="post" enctype="multipart/form-data" action="background/"> 
<input type="file" name="photoimg" id="photoimg" /> 
</form> 

Javascriptコード:

https://gist.github.com/2377516

ジャンゴModels.py:

class BackgroundModel(models.Model): 
    user = models.OneToOneField(User) 
    background = models.ImageField(upload_to='backgrounds') 

Djangoのviews.py:

def backgroundview(request): 
     if request.is_ajax(): 
      b = request.POST.get('photoimg')   
     try: 
      g = BackgroundModel.objects.get(user=request.user) 
     except BackgroundModel.DoesNotExist: 
      bm = BackgroundModel(background=b) 
      bm.user = request.user 
      bm.save() 
     else: 
      g.background = b 
      g.save() 
     return HttpResponse("") 

Djangoのsettings.py:

MEDIA_ROOT = '/home/nirmal/try/files/' 
MEDIA_URL = 'http://localhost:8000/files/' 

Djangoのurls.py:

url(r'^cover/$', login_required(direct_to_template), {'template': 'cover.html'}), 
url(r'^cover/background/$', 'cover.views.backgroundview'), 

誰も私を助けてもらえますか?

ありがとうございます!

答えて

2

ファイルがリクエストされています。ファイルリクエストはありません。 bが実際に値を持っていることを決して確認していないので、あなたはこのエラーが表示されていません。なぜなら、背景がnullにはならないというエラーが表示されないのは驚きです。

さらに、このためにModelFormを使用する必要があります。コード化しなければならない多くの動作をまとめます。

+0

ありがとうございました。しかし、なぜBackground = nullのためにエラーが発生するのですか? – rnk

+0

'request.POST.get( 'photoimg')はあなたのコードに対してNoneを返します。 – John

+0

ここでお手伝いできますか? http://stackoverflow.com/questions/10150301/django-model-has-no-attribute-committed – rnk

関連する問題