2012-10-13 2 views
0

파일 필드 이외의 다른 필드에 여러 필드가있는 경우 파일을 업로드 할 수 없습니다. 페이지에서 어떤 오류도 발생하지 않았지만 내 이미지를 업로드하지 않고 페이지를 단순히 같은 페이지로 표시합니다.모델 양식에 필드가 여러 개있을 때 파일이 업로드되지 않습니다.

여기 여기 내 모델 양식

class UploadImageForm(forms.ModelForm): 
    def __init__(self,user, *args, **kwargs): 
     super(UploadImageForm, self).__init__(*args, **kwargs) 
     self.fields['username'] = forms.CharField(initial = user, 
             widget = forms.TextInput(
            attrs = {'readonly':'readonly'})) 
    class Meta: 
     model = ImageUpload 
     exclude = ('id', 'isapproved') 

여기가 데이터를 처리하고 내 생각은 내 모델

class ImageUpload(models.Model): 
    username = models.ForeignKey(User) 
    imagefile = models.FileField(upload_to='pictures') 
    isapproved = models.BooleanField() 
    class Meta: 
     db_table = u'imageupload' 

    def __unicode__(self): 
     return u'%s' % (self.imagefile) 

입니다.

def imageupload(request): 
# Handle file upload 
    if request.method == 'POST': 
     list = ["jpeg", "jpg","JPG","JPEG","png","PNG"] 
     format = imghdr.what(request.FILES['imagefile']) 
     if format not in list: 
      error = "Please upload a valid file format" 
      form = UploadImageForm(request.user) 
      return HttpResponseRedirect(reverse('myview.views.imageupload')) 
     else: 
      form = UploadImageForm(request.POST, request.FILES) 
      if form.is_valid(): 
       newdoc = ImageUpload(imagefile = request.FILES['imagefile']) 
       newdoc.save() 
      return HttpResponseRedirect(reverse('myview.views.imageupload')) 
    else: 
     form = UploadImageForm(request.user) # A empty, unbound form 
    documents = ImageUpload.objects.all() 
    return render_to_response('imageupload.html', 
     {'documents': documents, 'form': form,'media':settings.MEDIA_URL}, 
     context_instance=RequestContext(request) 
    ) 

모델 양식에 파일 필드 만 사용한 경우 올바르게 사용되었습니다. 모델에 필드를 추가 한 후 파일을 업로드하지 않습니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까? Vikram

+1

실제로 서식 파일에 양식 오류가 표시됩니까? 'username' 필드는 유효하지 않을 것 같습니다. –

+0

나는 어떤 오류도 보이지 않고있다. 나는 표시를 시도했으나 오류는 표시되지 않았다. – vkrams

+0

폼을 저장하기 위해'User' 객체의 인스턴스를 줄 필요가 있는가? – vkrams

답변

1

그냥 양식 유효성 검사에 대한보기에 다른 블록을 추가 사전에

감사합니다. 귀하의 양식이 유효하지 않으며 귀하의 템플릿에 오류가 인쇄되지 않았다고 생각합니다.

if form.is_valid(): 
    newdoc = ImageUpload(imagefile = request.FILES['imagefile']) 
    newdoc.save() 
else: 
    # do something visible here 

또한 양식은 그냥 이미지 대신 새로운 ImageUpload 객체를 생성하는 관련 데이터를 저장 form.save()를 사용할 수있는 유효합니다.

또한 모델에 User 개체를 저장해야합니다.