Python __init_u2;()接受1个位置参数,但为2个提供了django电子邮件激活
请帮助解决我的问题,当我在电子邮件中打开激活链接时,它将显示init()接受1个位置参数,但给出2个位置参数,帮助 这是我的注册意见Python __init_u2;()接受1个位置参数,但为2个提供了django电子邮件激活,python,django,Python,Django,请帮助解决我的问题,当我在电子邮件中打开激活链接时,它将显示init()接受1个位置参数,但给出2个位置参数,帮助 这是我的注册意见 def signup(request): if request.method == 'POST': user_form = UserCreationForm(request.POST) profile_form = ProfileForm(request.POST) if user_form.is_valid
def signup(request):
if request.method == 'POST':
user_form = UserCreationForm(request.POST)
profile_form = ProfileForm(request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save(commit=False)
profile = profile_form.save(commit=False)
user.is_active = False
user.save()
profile.save()
uidb64 = urlsafe_base64_encode(force_bytes(user.pk))
domain = get_current_site(request).domain
link=reverse('activate', kwargs={
'uidb64': uidb64, 'token': token_generator.make_token(user)})
activate_url = 'http://'+domain+link
email_body = 'Hallo '+user.username + 'Tolong gunakan link ini untuk verifikasi akun anda\n' +activate_url
email_subject = 'Aktivasi Akun Anda'
email = EmailMessage(
email_subject,
email_body,
'noreply@kantorkecamatanbintanutara.com',
[profile.email],
)
email.send(fail_silently=False)
return redirect('/pengurusan/signin')
else:
return render(request, 'pengurusan/register.html', {
'user_form': user_form,
'profile_form': profile_form
})
这是我的验证观点
class VerificationView(View):
def get(self, request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
if not token_generator.check_token(self, user, token):
return redirect('pengurusan/signup'+'?message'+'User already activated')
if user.is_active:
return redirect('pengurusan/signin')
user.is_active = True
user.save()
messages.success(request, 'Account activated successfully')
return redirect('pengurusan/signup')
except Exception as ex:
pass
return redirect('pengurusan/signin')
这是我的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()
这是我的URL.py
from django.conf import settings
from django.conf.urls import include, url
from django.urls import path
from django.conf.urls.static import static
from django.contrib import admin
from . import views
urlpatterns = [
url(r'^$', views.signin),
url(r'index/$', views.index),
url(r'signin/$', views.signin),
url(r'signup/$', views.signup),
url(r'signout/$', views.signout),
path('activate/<uidb64>/<token>', views.VerificationView, name="activate"),
]
来自django.conf导入设置的
从django.conf.url导入包括
从django.url导入路径
从django.conf.url.static导入静态
从django.contrib导入管理
从…起导入视图
URL模式=[
url(r'^$',views.signin),
url(r'index/$,views.index),
url(r'signin/$,views.signin),
url(r'signup/$,views.signup),
url(r'signout/$,views.signout),
路径('activate/',views.VerificationView,name=“activate”),
]
尝试将.as_view()
添加到所有基于类的视图中(不基于函数):
urlpatterns=[
url(r'^$',views.signin),
url(r'index/$,views.index),
url(r'signin/$,views.signin),
url(r'signup/$,views.signup),
url(r'signout/$,views.signout),
路径('activate/',views.VerificationView.as_view(),name=“activate”),
]
post您的url.py
来自我已经发布的appokay
urlpatterns = [
url(r'^$', views.signin),
url(r'index/$', views.index),
url(r'signin/$', views.signin),
url(r'signup/$', views.signup),
url(r'signout/$', views.signout),
path('activate/<uidb64>/<token>', views.VerificationView.as_view(), name="activate"),
]