0

私はDjangoのアップロード機能を使用しようとしていますが、動作させることができません。私のフォームにはすでにenctype="multipart/form-data"が含まれているため、問題にはなりません。とにかく、ここでイム一緒に働くものです:Django Upload Images

これは私のモデルである

class Photo(models.Model): 
    """ This represents a Photo 
    """ 
    caption = models.CharField(_("caption"), max_length=100, null=True, 
     blank=True, unique=True) 
    image = ValidateImageField(
    upload_to='uploaded_photos/Published/%Y/%B/%d/', 
    content_types=['image/jpeg', 'image/gif', 'image/png'], 
    max_upload_size= settings.FILE_UPLOAD_MAX_MEMORY_SIZE 
    ) 
    source = models.URLField(_("source"), null=True, blank=True) 
    status = models.CharField(_("status"), max_length=1, choices=STATUS_CHOICES, default='H') 
    date_added = models.DateTimeField(_("date_added"), auto_now_add=True) 
    date_modified = models.DateTimeField(_("date_modified"), auto_now=True) 
    slug = models.SlugField(_("slug"), max_length=50, unique=True) 
    extra_info = models.TextField(_("extra_info"), null=True, blank=True) 

これは私のフォームです:

def submit_image(request): 
    if request.method == 'POST': 
     form = UploadImageForm(request.POST, request.FILES) 
     if form.is_valid: 
      form.save() 
     return redirect('photos.views.upload_success') 

    form = UploadImageForm() 
    return render(request,'photos/upload.html', { 
     'form': form 
    }) 

私はすでに試してみました:これは私の見解である

​​

djangakuに示されているようにchunksメソッドを使用し、それも動作しません。私のコードに問題があるかもしれません、もしそうなら、もし誰かがそれを指摘できれば、私は感謝します。前もって感謝します。

答えて

2

あなたのフォームは無効です(たとえば、slugは必須ではありません)。しかし、あなたはこれを処理せず、とにかく成功ページにリダイレクトします。また、is_validの後に括弧を忘れてしまったので、常にTrueになります。正しい表示は次のようになります。

def submit_image(request): 
    form = UploadImageForm(request.POST or None, request.FILES or None) 
    if form.is_valid(): 
     form.save() 
     return redirect('photos.views.upload_success') 

    return render(request,'photos/upload.html', { 
     'form': form 
    })