Specific text not a...
 
Notifications
Clear all

Specific text not appearing while submit sign up form

6 Posts
3 Users
0 Reactions
235 Views
0
Topic starter

Respected Sir, reference section No. 13 and sub-section 

Account Activation – Decode User PK & Activate the User | Expire Link

As I fill up the sign-up form and click on the Register option. Then the following text does not appear 

Thank you for registering with us. We have sent you a verification email to your email address.[aijazaliinayatbutt@gmail.com] Please verify it.
 
 
login.html
{% block content %}
<section class="section-content padding-y"style="min-height:84vh">

<!-- ========================= SECTION CONTENT ========================= -->

{% if request.GET.commmand == 'verification' %}
<div class="container mx-auto alert alert-info"roll="alert"style="max-width: 1024px; margin-top:100px;">
  Thank you for registering with us. We have sent you a verification email to your email address.[{{ request.GET.email }}] please verify it.
<br><br>
  Aready verified? <a href="{% url 'login' %}">login</a>
</div>
{% else %}
 
views.py
 
 # user activation
            current_site = get_current_site(request)
            mail_subject = 'Please activate your account'
            message = render_to_string('accounts/account_verification_email.html', {
                'user': user,
                'domain': current_site,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': default_token_generator.make_token(user),
            })
            to_email = email
            send_email = EmailMessage(mail_subject, message, to=[to_email])
            send_email.send()
            # messages.success(request, 'Thank you for registering with us. We have sent you a verification email to your email address[aijazaliinayatbutt@gmail.com]. please verify it.')
            return redirect('/accounts/login/?command=verification&email='+email)

    else:
        form = RegistrationForm()
    context = {
        'form':form,
    }
    return render(request, 'accounts/register.html', context)
def login(request):
    if request.method=='POST':
        email = request.POST['email']
        password = request.POST['password']
        user = auth.authenticate(email=email, password=password)
   
        if user is not None:
            auth.login(request, user)
            # messages.success(request, 'You are now logged in')
            return redirect('home')
        else:
            messages.error(request, 'Invalid login credentials')
            return redirect('login')
    return render(request, 'accounts/login.html')
@login_required(login_url='login')
def logout(request):
    auth.logout(request)
    messages.success(request, 'You are logged out')
    return redirect('login')

def activate(request, uidb64, token):
    try:
        uid = urlsafe_base64_decode(uidb64).decode()
        user = Account._default_manager.get(pk=uid)
    except(TypeError, ValueError, OverflowError, Account.DoesNotExist):
        user = None

    if user is not None and default_token_generator.check_token(user, token):
        user.is_active = True
        user.save()
        messages.success(request, 'Congratulations! Your account is activated.')
        return redirect('login')
    else:
        messages.error(request, 'Invalid activation link')
        return redirect('register')
   
       
This topic was modified 4 months ago by Ejaz Ali Inayat
5 Answers
0

Hi Ejaz Ali Inayat, 

Your given code looks correct. But if you are still facing issues, can you provide your GitHub repository so we can debug the issue and give you the correct answer?

0

Hi Ejaz Ali Inayat, 

The issue you are facing is due to a spelling mistake in the login.html file on line number 9. You have written:

{% if request.GET.commmand == 'verification' %}

However, it should be:

{% if request.GET.command == 'verification' %}

The correct keyword is command, but you mistakenly wrote commmand with an extra "m." This is the main issue. Once you fix this, your issue will be resolved.

If you need any further assistance, feel free to ask.

 
This post was modified 4 months ago by Mohaiminul - Team Rathan
0

MultiValueDictKeyError at /accounts/login/
'password'
Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/login/
Django Version: 3.1
Exception Type: MultiValueDictKeyError
Exception Value:
'password'
Exception Location: C:\Users\rohit\OneDrive\Desktop\Great kart\env\lib\site-packages\django\utils\datastructures.py, line 78, in __getitem__
Python Executable: C:\Users\rohit\OneDrive\Desktop\Great kart\env\Scripts\python.exe
Python Version: 3.8.5
Python Path:
['C:\\Users\\rohit\\OneDrive\\Desktop\\Great kart',
'C:\\Users\\rohit\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip',
'C:\\Users\\rohit\\AppData\\Local\\Programs\\Python\\Python38\\DLLs',
'C:\\Users\\rohit\\AppData\\Local\\Programs\\Python\\Python38\\lib',
'C:\\Users\\rohit\\AppData\\Local\\Programs\\Python\\Python38',
'C:\\Users\\rohit\\OneDrive\\Desktop\\Great kart\\env',
'C:\\Users\\rohit\\OneDrive\\Desktop\\Great kart\\env\\lib\\site-packages']
Server time: Mon, 09 Jun 2025 04:13:32 +0000
views.py

from django.shortcuts import render, redirect
from .forms import RegistrationForm
from .models import Account
from django.contrib.auth.decorators import login_required
from django.contrib import messages, auth
from django.http import HttpResponse

#Verification email
from django.contrib.sites.shortcuts import get_current_site
from django.template.loader import render_to_string
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.utils.encoding import force_bytes
from django.contrib.auth.tokens import default_token_generator
from django.core.mail import EmailMessage

def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
phone_number = form.cleaned_data['phone_number']
email = form.cleaned_data['email']
password = form.cleaned_data['password']
username = email.split("@")[0]
user = Account.objects.create_user(first_name=first_name, last_name=last_name, email=email, username= username, password= password)
user.phone_number = phone_number
user.save()

#user activation
current_site = get_current_site(request)
mail_subject = 'Please activate your account'
message = render_to_string('accounts/account_verification_email.html',{
'user': user,
'domain': current_site,
'uid' : urlsafe_base64_encode(force_bytes(user.pk)),
'token' : default_token_generator.make_token(user),
})
to_email = email
send_email = EmailMessage(mail_subject, message, to=[to_email])
send_email.send()
# messages.success(request,'Registration successful.')
return redirect('/accounts/login/?command=verification&email=' + email)
else:
form = RegistrationForm()
context = {
'form': form,
}
return render(request, 'accounts/register.html',context)

def login(request):
if request.method =='POST':
email = request.POST['email']
password = request.POST['password']

user = auth.authenticate(email=email, password=password)

if user is not None:
auth.login(request, user)
messages.success(request,"You are now logged in. ")
return redirect('dashboard')
else:
messages.error(request,'Invalid login credentials')
return redirect('login')
return render(request, 'accounts/login.html')

@login_required(login_url = 'login')
def logout(request):
auth.logout(request)
messages.success(request,'You are logged out.')
return redirect('login')

def activate(request, uidb64, token):
try:
uid = urlsafe_base64_decode(uidb64).decode()
user = Account.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, Account.DoesNotExist):
user = None

if user is not None and default_token_generator.check_token(user, token):
user.is_active = True
user.save()
messages.success(request, 'Congratulations! Your account is activated.')
return redirect('login')
else:
messages.error(request, 'Invalid activation link')
return redirect('register')

@login_required(login_url = 'login')
def dashboard(request):
return render(request, 'accounts/dashboard.html')

def forgotPassword(request):
if request.method =='POST':
email = request.POST['email']
if Account.objects.filter(email= email).exists():
user= Account.objects.get(email__exact = email)

#Reset password email
current_site = get_current_site(request)
mail_subject = 'Reset your password'
message = render_to_string('accounts/reset_password_email.html',{
'user': user,
'domain': current_site,
'uid' : urlsafe_base64_encode(force_bytes(user.pk)),
'token' : default_token_generator.make_token(user),
})
to_email = email
send_email = EmailMessage(mail_subject, message, to=[to_email])
send_email.send()

messages.success(request, 'Password reset email has been sent to your email address.')
return redirect('login')
else:
messages.error(request,'Account does not exist!')
return redirect('forgotPassword')
return render(request, 'accounts/forgotPassword.html')
def resetpassword_validate(request):
return HttpResponse('ok')

0

rohith_1532, 

The issue you're facing is because the form is not receiving the password from the frontend. I think there might be a typo in the HTML code for the password field, which is why it's not being retrieved correctly. Please make sure the name attribute for the password input is set correctly in your form. I hope this fixes the issue. If you face any other problems, feel free to ask.

0

when i try to pay amount it is showing like this when i click paynow it showing it is link a debit or criedit card
it is now showing sandbox account what should do pls tell me bro..

Share: