2017-04-09 8 views
1

私はDjangoでシンプルな認証アプリケーションを使用しています。認証ユーザーにウェブサイトのページから複数のファイルを簡単にアップロードできるようにします。DJANGOアップロード画像djangoフォームを表示しない

私は複数のDjangoフォームとビューとHTMLフォームを作成しています。私のコードが正解ではじめて完全なものであっても、うまく動作しないのかどうかはわかりません。

htmlページには表示されませんアップロード用のフォームは送信ボタンのみを表示し、何もしません。

button

model.py

class MyModel(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    upload = models.ImageField(upload_to='upload') 

views.py

@login_required 
def upload_images(request): 
    uploadimages = UploadImagesForm(request.POST or None, request.FILES or None) 
    if uploadimages.is_valid(): 
     # Get the images that have been browsed 
     if request.FILES.get('multipleimages', None): 
      images = request.FILES.getlist('multipleimages') 
      for image in images: 
       MyModel.objects.create(user=request.user.id, images=image) 
     else: 
      pass 
    else: 
     raise Http404 
    return render(request, 'home.html', {'UploadImagesForm':UploadImagesForm }) 

forms.py

class UploadImagesForm(forms.Form): 
    multipleimages = forms.ImageField(label="Upload Multiple Images:",widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False) 

HTML

{% extends 'base.html' %} 

{% block content %} 
<div class="container"> 
<div class="row"> 

<div class="jumbotron"> 
    <h1>Hello</h1> 
    <p><form class="" action="" method="post" enctype="multipart/form-data"> 
      {% csrf_token %} 


       {{ UploadImagesForm }} 

      <input type="submit" name="" value="Submit"> 

      </form></p> 
    <img src="static/css/me.jpg" width="777px" height="555px";alt="some image"/> 
</div> 
</div> 
</div> 
{% endblock %} 

答えて

0

画像が有効でない場合、404ページが表示されます。それは非常にユーザーの優越感ではありません!これに

変更:

@login_required 
def upload_images(request): 
    uploadimages = UploadImagesForm(request.POST or None, request.FILES or None) 
    if uploadimages.is_valid(): 
     # Get the images that have been browsed 
     if request.FILES.get('multipleimages', None) is not None: 
      images = request.FILES.getlist('multipleimages') 
      for image in images: 
       MyModel.objects.create(user=request.user, upload=image) 
    return render(request, 'home.html', {'UploadImagesForm':UploadImagesForm }) 
+0

奇妙です。私はそれをローカルでテストし、かなりうまく動作します。 '{{UploadImagesForm}} 'を' {%block content%}'の外側に置いてレンダリングされるかどうか確認してください。 –

+0

はいあなたは正しいです今私はformaを見せても動作しません私はこのエラーを持っています/ UNIQUE制約に失敗しました:log_mymodel.user_id'は間違っていますか? –

+0

それは 'unique = True'の違反があるからです。あなたは同じユーザーを渡しているので、データベースが不平を言う! –

関連する問題