1

ファイル サイズ制限とファイル拡張子を実装して、アップロードされた画像を検証しようとしています。問題は、画像がアップロードされるときです。処理される前にファイルサイズの制限とファイル拡張子を検証したいのですが、このエラーが発生します

「member_descriptor」オブジェクトは添字不可です

forms.py" in clean_image
  43.                         if not file.name[-3:].lower() in ['jpg']:

Exception Type: TypeError at /pro/
Exception Value: 'member_descriptor' object is unsubscriptable
File "C:\Python26\lib\site-packages\django\forms\forms.py" in _get_errors
  115.             self.full_clean()
File "C:\Python26\lib\site-packages\django\forms\forms.py" in full_clean
  270.         self._clean_fields()

マイ Forms.py

class PersonForm(forms.ModelForm):

    def clean_image(self):
            cleaned_data = super(PersonForm,self).clean()
            image = cleaned_data.get("image")

            if image:
                    if image._size > 4*1024*1024:
                            raise forms.ValidationError("Image Must be <4mb Less")
                    if not file.name[-3:].lower() in ['jpg']:
                            raise forms.ValidationError("Your file extension was not recongized")
                    return image



class Meta:
    model = Person
    fields = ('image',)

ビュー.py

def pro(request):

    form = PersonForm()
    if request.POST.has_key('pro'):
        form = PersonForm(request.POST,request.FILES)
        if request.POST['pro'] == 'first':
            if form.is_valid():
                person = Person.objects.get(user=request.user)
                image = form.cleaned_data['image']

                if image:
                    person.image = form.cleaned_data['image']
                person.save()

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

私のモデル.py

class Person(models.Model):
    user = models.ForeignKey(User)
    image = models.FileField(upload_to="images/",blank=True)
    def __unicode__(self):
        return self.name
4

1 に答える 1