NoReverseMatch в /authentication/register Djangoproje
После того как я нажимаю кнопку регистрации, он показывает эту ошибку.он показывает вот так Я хочу, чтобы он отправлял ссылку активации на учетную запись пользователя. после нажатия кнопки регистрации пользователь регистрируется, но он не отправляет ссылку активации и показывает эту ошибку. пожалуйста, помогите мне
код в views.py код для подписки и ссылки активации.
class RegistrationView(View):
def get(self, request):
return render(request,'authentication/register.html')
def post(self, request):
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
context={
'fieldValues':request.POST
}
if not User.objects.filter(username=username).exists():
if not User.objects.filter(email=email).exists():
if len(password) < 6:
messages.error(request, 'Password too short')
return render(request, 'authentication/register.html',context)
user = User.objects.create_user(username=username, email=email)
user.set_password(password)
user.is_active = False
user.save()
uidb67 = urlsafe_base64_encode(force_bytes(user.pk))
domain = get_current_site(request).domain
link = reverse('activate',kwargs={'uidb67': uidb67,'token': token_generator.make_token(user)})
activate_url='http://'+domain+link
email_body = 'Hello '+user.username+ \
'Please use this link to verify your account\n' +activate_url
email_subject='Activate your account'
email = EmailMessage(
email_subject,email_body,'noreply@semicolon.com',
[email],
)
email.send(fail_silently=False)
messages.success(request,'Account successfully created')
return render(request,'authentication/register.html')
return render(request,'authentication/register.html')
class VerificationView(View):
def get(self,request, uidb64, token):
return redirect('login')
in utils.py
from django.contrib.auth.tokens import PasswordResetTokenGenerator
from six import text_type
class AppTokenGenerator(PasswordResetTokenGenerator):
def _make_hash_value(self, user, timestamp):
return (text_type(user.is_active)+text_type(user.pk)+text_type(timestamp))
token_generator = AppTokenGenerator()
в urls.py
path('activate/<uidb64>/<token>',VerificationView.as_view(),name="activate"),
в settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'main')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
EMAIL_HOST = os.environ.get('EMAIL_HOST')
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = os.environ.get('EMAIL_HOST_USER')
EMAIL_PORT = 587
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')