我试图在POST成功后重定向到视图。如果我尝试添加一个kwargs,不知道为什么它不起作用。我试图在没有额外参数的情况下反转它并且它有效。但是当我添加一些条件语句所需的附加变量时,会导致错误。
我已经检查了文档,这里提出的一些问题和名称空间是解决方案,但据我所知,它适用于应用程序级别。我在项目下创建了视图。
项目urls.py
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.Index_With_Email_Subscription, name="index"),
path('humongousdata/', admin.site.urls),
path('termsofservices/', views.Terms_Of_Services, name="termsofservices"),
path('me/', include('me.urls')),
path('thankyou/', views.ThankYou, name="givethanks"),
]
项目views.py
from django.shortcuts import render, redirect
from django.urls import reverse
def index(request):
return redirect(reverse('givethanks', kwargs={'thanks_for':'registered'}))
def ThankYou(request, **kwargs):
print(thanks_for)
错误消息
答案 0 :(得分:1)
看起来'givethanks'
的网址不会占用任何kwargs。 view 函数可以,但url模式本身没有'thanks_for'
的占位符。您可能希望将其修改为
path('thankyou/<thanks_for>/', views.ThankYou, name="givethanks"),
或类似的东西。
然后您的观点可以是:
def ThankYou(request, **kwargs):
print(kwargs['thanks_for'])