GOOGLE ADS

mercredi 20 avril 2022

Être redirigé vers une mauvaise URL dans Django

J'essaie d'envoyer un e-mail de vérification de compte et de rediriger vers la page de connexion

def signup(request):
custom_user_id = ''.join(random.choices(string.ascii_uppercase+string.digits,k=10))
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']
email = form.cleaned_data['email']
password = form.cleaned_data['password']
username = form.cleaned_data['username']
user = Account.objects.create_user(user_id=custom_user_id,first_name=first_name,last_name=last_name,email=email,username=username,password=password)#this method is present in models.py file
user.save()
"""
User activation mail
"""
current_site = get_current_site(request)
mail_subject = "Please activate your fundaMental account"
message = render_to_string('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_email])
send_email.send()

Il est censé rediriger vers '127.0.0.1:8000/account/login/?command=verification&email=+email' mais à la place, il est redirigé vers '127.0.0.1:8000/account/signup/account/login/?command=verification&email =+courriel'

 return redirect('account/login/?command=verification&email='+email)
else:
form = RegistrationForm()
context = {
'form':form,
}
return render(
request,"signup.html",context)

Voici mon fichier urls.py

from django.urls import path
from. import views
urlpatterns = [
path('signup/',views.signup,name='signup'),
path('login/',views.login,name='login'),
path('logout/',views.logout,name='logout'),
path('activate/<uidb64>/<token>',views.activate,name='activate'),
]

Voici mon niveau de projet urls.py

from django.contrib import admin
from django.urls import path, include
from. import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.home,name='home'),
path('account/',include('account.urls')),
]


Solution du problème

Essayez avec ceci


redirect('home', 'account/login/?command=verification&email='+email)

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...