モデルにファイル フィールド以外の複数のフィールドがある場合、ファイルをアップロードできません。ページでエラーは発生しませんでしたが、ページには画像をアップロードせずに同じページが表示されるだけです。
これが私のモデルです
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)
ここに私のモデルフォームがあります
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')
これが、データを処理している私の見解です。
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