ChangeEmailView() 得到了一个意外的关键字参数 'token'
ChangeEmailView() got an unexpected keyword argument 'token'
我正在尝试创建一个 url,其中的值来自其中的视图
path('settings/email/changeemail/<str:token>', views.ChangeEmailView , name="changeemail"),
但是如果我进入这个页面就会出现这个错误:
Internal Server Error: /settings/email/changeemail/0fdb9ef1-ce86-482e-a8ef-3fc202438ba9
Traceback (most recent call last):
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
TypeError: ChangeEmailView() got an unexpected keyword argument 'token'
这是我的views.py
@login_required(login_url='home:login')
def ChangeEmailView(request):
if request.method == 'POST':
objects = User.objects.get(email = request.user.email)
form = EmailChangingForm(request.POST, instance=objects)
packet = get_object_or_404(TempUrl, user=request.user)
token = packet.uid
if form.is_valid():
form.save()
return redirect('home:profilesettings')
else:
objects = User.objects.get(email = request.user.email)
form = EmailChangingForm(request.POST, instance=objects)
packet = get_object_or_404(TempUrl, user=request.user)
token = packet.uid
context = {'form': form, 'token': token}
return render(request, 'home/email_settings.html', context)
最后我想要一个唯一的url,令牌从中保存在数据库中
这是生成 uuid 并放入数据库的另一个视图
def load_url(request):
token = uuid.uuid4()
objects = TempUrl.objects.update_or_create(user = request.user, uid=token, used=False)
print("Das ist der Token:" + str(token))
context = {'token': token}
return render(request, 'home/changeemail_pre.html', context)
您还必须将参数添加到视图中。
def changeEmailView(request, token):
...
这就是它说意外关键字的原因。因为关键字在那里,但视图不期望它。
我正在尝试创建一个 url,其中的值来自其中的视图
path('settings/email/changeemail/<str:token>', views.ChangeEmailView , name="changeemail"),
但是如果我进入这个页面就会出现这个错误:
Internal Server Error: /settings/email/changeemail/0fdb9ef1-ce86-482e-a8ef-3fc202438ba9
Traceback (most recent call last):
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Finn\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
TypeError: ChangeEmailView() got an unexpected keyword argument 'token'
这是我的views.py
@login_required(login_url='home:login')
def ChangeEmailView(request):
if request.method == 'POST':
objects = User.objects.get(email = request.user.email)
form = EmailChangingForm(request.POST, instance=objects)
packet = get_object_or_404(TempUrl, user=request.user)
token = packet.uid
if form.is_valid():
form.save()
return redirect('home:profilesettings')
else:
objects = User.objects.get(email = request.user.email)
form = EmailChangingForm(request.POST, instance=objects)
packet = get_object_or_404(TempUrl, user=request.user)
token = packet.uid
context = {'form': form, 'token': token}
return render(request, 'home/email_settings.html', context)
最后我想要一个唯一的url,令牌从中保存在数据库中
这是生成 uuid 并放入数据库的另一个视图
def load_url(request):
token = uuid.uuid4()
objects = TempUrl.objects.update_or_create(user = request.user, uid=token, used=False)
print("Das ist der Token:" + str(token))
context = {'token': token}
return render(request, 'home/changeemail_pre.html', context)
您还必须将参数添加到视图中。
def changeEmailView(request, token):
...
这就是它说意外关键字的原因。因为关键字在那里,但视图不期望它。