cri*_*iam 8 django django-urls django-views
我会开始说这不是一个重复的问题。我的问题与 Django 2.2 的 url 有点不同。
当将 HttpResponseRedirect 返回到同一应用程序中的另一个视图时,视图触发“str”对象不是映射错误。
我真的不知道出了什么问题。我在同一项目的其他应用程序中使用相同的方法并且它有效。
项目网址.py
urlpatterns = [
url(r'^$', Home.as_view()),
path('dashboard/', include('dashboard.urls')),
path('main/', include('main.urls'))
]
Run Code Online (Sandbox Code Playgroud)
应用程序 url.py
urlpatterns = [
path('', views.Section.as_view(), name='main-form')
]
Run Code Online (Sandbox Code Playgroud)
应用程序视图.py
class Home(View):
def get(self, request):
return render(request, 'index.html', context={})
def post(self, request):
return HttpResponseRedirect(reverse('main-form'))
class Section(View):
def get(self, request):
return HttpResponse("Test Ok")
Run Code Online (Sandbox Code Playgroud)
在发布主页表单后,它应该重定向到主表单视图(剖面视图类),但我收到错误。
如果我在模板 url 中使用 url,它会触发相同的错误{% url 'main-form' %}
如果我手动导航从地址栏查看,视图呈现良好。
怎么了?
boa*_*der 17
您可能编写了如下 URL 模式:
path('register-sms/', GetPhoneNumberView.as_view(), 'register-sms'),
Run Code Online (Sandbox Code Playgroud)
而不是像这样:
path('register-sms/', GetPhoneNumberView.as_view(), name='register-sms'),
Run Code Online (Sandbox Code Playgroud)
name是一个关键字参数,如果您将其省略,该字符串将成为 的值kwargs,并且您会收到此错误。如果您知道要查找什么,则修复很简单。
小智 3
尝试为您的 django 应用程序 urls.py 文件添加应用程序名称,例如
app_name ='smth'
urlpatterns = [
path('', views.Section.as_view(), name='main-form')
]
Run Code Online (Sandbox Code Playgroud)
然后在您的模板视图文件中包括:href={% url 'smth:main-form' %}
| 归档时间: |
|
| 查看次数: |
15048 次 |
| 最近记录: |