2017-08-03 19 views
2

私のフォームは送信していませんこのエラーが発生しました。 私はこの問題はviews.py.Iであるのに対しタイプオブジェクト 'UserProfile'には属性 'object'がありません

File "/home/letsperf/mydjangoprojects/form/basic/views.py", line 9, in signupview 
if user_form.is_valid(): 
File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/forms/forms.py", line 183, in is_valid 
return self.is_bound and not self.errors 
File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/forms/forms.py", line 175, in errors 
self.full_clean() 
File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/forms/forms.py", line 384, in full_clean 
self._clean_fields() 
File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/forms/forms.py", line 405, in _clean_fields 
value = getattr(self, 'clean_%s' % name)() 
File "/home/letsperf/mydjangoprojects/form/basic/forms.py", line 24, in clean_email 
email_qs = UserProfile.object.filter(email=email) 
AttributeError: type object 'UserProfile' has no attribute 'object' 

[03/8月/ 2017午前9時24分52秒] "POST /サインアップ/ HTTP/1.1" 500 92520

のためにこれを解決しようとしていますだと思います

views.py

from django.shortcuts import render 
from basic.forms import UserProfileForm 


# Create your views here. 
def signupview(request): 
    if request.method == 'POST': 
     user_form = UserProfileForm(data=request.POST) 
     if user_form.is_valid(): 
      password = user_form.cleaned_data.get('password') 
      confirm_password = user_form.cleaned_data.get('confirm_password') 
      user = UserProfileForm() 
      user.set_password(password) 
      user.set_password(confirm_password) 
      user.save() 

    return render(request, 'basic/register.html') 

forms.py

class UserProfileForm(forms.ModelForm): 
    email = forms.EmailField(label="Email address") 
    password = forms.CharField(widget=forms.PasswordInput()) 
    confirm_password = forms.CharField(widget=forms.PasswordInput()) 

class Meta: 
    model = UserProfile 
    fields = {'username', 'email', 'password', 'confirm_password'} 

def clean_password(self, *args, **kwargs): 
    password = self.cleaned_data.get('password', None) 
    confirm_password = self.cleaned_data.get('confirm_password', None) 
    if password != confirm_password: 
     raise forms.ValidationError(" password didn't match ") 
    return super(UserProfile, self).clean_password(*args, **kwargs) 

def clean_email(self): 
    email = self.cleaned_data.get('email') 
    email_qs = UserProfile.object.filter(email=email) 
    if email_qs.exist(): 
     raise forms.ValidationError("This Email has already exists") 

答えて

0

それはちょうど誤植UserProfile.objects.filter(email=email)です。これはobjectが複数である必要があります - objectsです。

0

この1試してください:あなたはのDoesNotExist例外を取得する一致がない場合、この場合の

email_qs = UserProfile.objects.get(email__iexact=email) 

email_qs = UserProfile.objects.filter(email=email) 

それとも別の方法を。

関連する問題