2017-10-23 23 views
0

/accounts/upload_save/ に 'WSGIRequest'オブジェクトにAttributeErrorエラーがあります。 'cleaned_data'属性がありません。それは私がファイルを選択し、 "送信"ボタンを押すと、選択されたイメージはmodel.Butに送信されますが、私は画像を選択し、 "送信"ボタンを押すと、エラーが発生することです。 は、私は本当に理解できないのindex.html/accounts/upload_save/'WSGIRequest'オブジェクトのAttributeErrorに 'cleaned_data'属性がありません

<main> 
    <div class="detailimg col-xs-8"> 
     <div class="relative_ele"> 

      <div class="container" id="photoform"> 
       {% if form.errors %}  
       <div class="alert alert-danger" role="alert"> 
         <p>At least 1 picture should be selected</p>   
       </div> 
       {% endif %} 

       <form action="/accounts/upload_save/" method="POST" enctype="multipart/form-data"> 
        {% csrf_token %} 
        <div class="input-group"> 
         <label class="input-group-btn" style="width: 80px;"> 
          <span class="file_select btn-lg"> 
           File Select1 
           <input type="file" name="image"> 
          </span> 
         </label> 
         <input type="text" class="form-control" readonly="">   
        </div> 
        <div class="input-group"> 
         <label class="input-group-btn" style="width: 80px;"> 
          <span class="btn-lg file_select"> 
          File Select2 
          <input type="file" name="image2"> 
          </span> 
         </label> 
         <input type="text" class="form-control" readonly="">   
        </div> 
        <div class="form-group"> 
         <input type="hidden" value="{{ p_id }}" name="p_id" class="form-control"> 
        </div> 
        <div class="col-xs-offset-2"> 
         <div class="form-group"> 
          <input type="submit" value="SEND" class="form-control"> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 
</main> 

にviews.py

@login_required 
@csrf_exempt 
def upload_save(request): 
    form = UserImageForm(request.POST, request.FILES) 
    if request.method == "POST" and form.is_valid(): 
      data = form.save(commit=False) 
      data.user = request.user 
      data.image = request.cleaned_data['image'] 
      data.save() 
      return render(request, 'photo.html') 

    else: 
     form = UserImageForm() 
     return render(request, 'profile.html', {'form': form}) 

に書いた理由

@login_required 
@csrf_exempt 
def upload_save(request): 
    if request.method == "POST": 
     form = UserImageForm(request.POST, request.FILES) 
     if form.is_valid(): 
      data = form.save(commit=False) 
      data.user = request.user 
      data.image = form.cleaned_data['image'] 
      data.save() 
     else: 
      print(form.errors) 
    else: 
     form = UserImageForm() 

    return render(request, 'registration/photo.html', {'form': form}) 

が、同じようなviews.pyでこのエラーhappens.Iのreworteエラーが発生します。私はこれを修正する必要がありますか?私のコードでWSGIRequestはどちらですか?

答えて

0

request.cleaned_data['image']は無効です。第2の例のようにform.cleaned_dataを使用してください。

同じAttributeErrorを取得した場合、サーバーを再起動せずに古いコードを実行しています。

おそらく、data.image = form.cleaned_data['image']行はまったく必要ありません。モデルフォームはイメージフィールドの設定を担当します。 commit=Falseで保存した後は、フォームに含まれていないフィールドを変更するだけで済みます。

if request.method == "POST" and form.is_valid(): 
     data = form.save(commit=False) 
     data.user = request.user 
     data.save() 
関連する問題