이 내 파일 forms.py장고 ImageField - 'NoneType'객체
class RegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
password2 = forms.CharField widget=forms.PasswordInput())
username = forms.CharField(max_length=15)
email = forms.CharField(max_length=25)
avatar = forms.ImageField(required=False)
class Meta:
model = User
fields = ('username', 'email', 'password', 'password2', 'avatar')
def clean_password2(self):
password = self.cleaned_data.get("password")
password2 = self.cleaned_data.get("password2")
if not password2:
raise forms.ValidationError("error")
if password != password2:
raise forms.ValidationError("error2.")
return self.cleaned_data
def clean_avatar(self):
image = self.cleaned_data['avatar']
if image.size > 1*1024:
raise forms.ValidationError("Image file too large (> 1kb)")
return image
및 models.py
class User(AbstractBaseUser):
username = models.CharField(max_length=15, unique = True)
email = models.CharField(max_length=25, unique = True)
reg_date = models.DateTimeField(_('reg_date'), default=timezone.now)
user_rating = models.IntegerField(default='0')
avatar = models.ImageField(upload_to='avatars', blank=True)
register.html
<form class="form" action='/auth/register/' method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<div class="form-actions">
<button type="submit" class="btn btn-info">Reg</button>
</div>
</form>
입니다
나는이 오류가있어 결국 views.py
def register(request):
context = RequestContext(request)
registered = False
if request.method == 'POST':
form = RegisterForm(data=request.POST)
if form.is_valid():
user = form.save()
user.set_password(user.password)
if 'avatar' in request.FILES:
user.avatar = request.FILES['avatar']
user.save()
registered = True
else:
print form.errors
else:
form = RegisterForm()
return render_to_response('loginsys/register.html', {'form': form, 'registered': registered}, context)
:
'NoneType' object has no attribute 'size'
Request Method: POST Request URL: xxxxx/auth/register/ Django Version: 1.6.2 Exception Type: AttributeError Exception Value:
'NoneType' object has no attribute 'size'
Exception Location: /home/max/xxxxx/loginsys/forms.py in clean_avatar, line 37
loginsys/forms.py in clean_avatar
37 if image.size > 1*1024:
...
▶ 지역이 객체가 'NoneType는'항상 왜
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
...
▶ Local vars
/home/max/xxxxx/loginsys/views.py in register
if form.is_valid():
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/forms.py in is_valid
return self.is_bound and not bool(self.errors)
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/forms.py in errors
self.full_clean()
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/forms.py in full_clean
self._clean_fields()
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/forms.py in _clean_fields
value = getattr(self, 'clean_%s' % name)()
...
▶ Local vars
/home/max/xxxxx/loginsys/forms.py in clean_avatar
if image._size > 1*1024:
...
▶ Local vars
을 바르? "def clean_avatar (self)"함수를 제거하면 파일이 성공적으로 저장됩니다.
처음에는 수행하려는 작업에 대한 설명과 현재 가지고있는 문제점에 대해이 단어를 다시 말해야합니다. 모든 사람이 읽을 수있는 무의미한 코드입니다. 실제로 무엇을하려고하는지 전혀 알 수 없습니다. – Cylindric
어디에서 clean_avatar 함수를 호출하고 있습니까? 전체 추적을 보여줘. 또한, 당신은'image._size'를 사용해야한다는 것에주의하십시오. –
등록 양식을 만들고 아바타를 업로드하려고합니다. 아바타가로드되어 저장되었지만 크기 그림을 확인하고 싶습니다. 테스트 할 때마다 항상이 오류가 발생합니다. – russianstudent