forms.py :
class LoginUserForm(forms.Form):
email = forms.CharField(
widget=forms.EmailInput(attrs={'autofocus': True, 'placeholder':
'Email'}),
required=True,
label='Email :',
max_length=255
)
password = forms.CharField(
widget=forms.PasswordInput(attrs={'placeholder': 'Password'}),
label=_('Password :'),
required=True,
max_length=50,
)
def clean(self, *args, **kwargs):
email = self.cleaned_data.get('email', None)
password = self.cleaned_data.get('password', None)
if email and password:
try:
loginuser = User.objects.get(email=email)
except ObjectDoesNotExist:
raise forms.ValidationError(_('Email or Password are
Wrong!'))
if not loginuser.is_active:
raise forms.ValidationError(_('This User Does not Active.'))
if not loginuser.check_password(password):
raise forms.ValidationError(_('Email or Password are
Wrong!'))
registration = Registration.objects.filter(user=loginuser,
is_registered=True)
if not registration.exists():
reg_email(
to_list=[loginuser.email],
subject='Email Registration for djangotutorial.ir',
code=signing.dumps({'id': loginuser.id}, salt=salt) +
'/?reg_code=' + signing.dumps({'username': loginuser.username, 'id':
loginuser.id, 'email': loginuser.email}, salt=salt)
)
raise forms.ValidationError(_('This Account is not
Registered!. Email has been sent. check your email'))
login(self.request, loginuser)
return super(LoginUserForm, self).clean()
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(LoginUserForm, self).__init__(*args, **kwargs)
views.py :
class LoginUser(FormView):
"""Generate User Login Page By http://site_domain/login/ Based on
public/registration/login.html Template"""
template_name = 'public/registration/login.html'
form_class = LoginUserForm
success_url = reverse_lazy('home')
def get(self, request, *args, **kwargs):
"""When The Get Request Incoming."""
if request.user.is_authenticated:
return redirect(self.success_url)
return render(request, self.template_name, {'form':
self.form_class()})
def post(self, request, *args, **kwargs):
"""When The Post Request Incoming. User Submit Login Form."""
next_url = request.GET.get('next', None)
form = self.form_class(request.POST or None, request=request)
if form.is_valid():
if next_url:
return redirect(next_url)
return redirect(self.success_url)
return render(request, self.template_name, {'form': form})
On Sun, Nov 26, 2017 at 11:13 PM, Matemática A3K <[email protected]>
wrote:
>
>
> On Sun, Nov 26, 2017 at 12:55 AM, Tom Tanner <
> [email protected]> wrote:
>
>> My `models.py` has this:
>> class MyUser(AbstractBaseUser):
>> email= models.CharField(max_length=254, unique=True)
>> USERNAME_FIELD= "email"
>>
>> My `forms.py` has this:
>> class LoginForm(AuthenticationForm):
>> email= forms.EmailField(label=_("Email"), max_length=254)
>>
>> class Meta:
>> model= MyUser
>> fields= ("email",)
>>
>> The form on the template has three fields: Username, Password and Email,
>> in that Order. I want only Email and Password to show up in the form. How
>> do I do that?
>>
> https://docs.djangoproject.com/en/1.11/topics/forms/
> modelforms/#selecting-the-fields-to-use
>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/django-users/4e9a3109-3dd0-4754-91f2-44731154920c%40googlegroups.com
>> <https://groups.google.com/d/msgid/django-users/4e9a3109-3dd0-4754-91f2-44731154920c%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/CA%2BFDnhLt-rz93nqAhOYE_VgWPFCU2pCKjL7qZu2z0u9%3DkBxY-
> w%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CA%2BFDnhLt-rz93nqAhOYE_VgWPFCU2pCKjL7qZu2z0u9%3DkBxY-w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CACOk0Ty4tjuCOovpLmjTKvPY5cApA0U7QhG-Fs%2B8A7bzU1P1Sg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.