如何修复'str'对象不是映射错误

时间:2019-04-24 23:04:29

标签: django django-views django-urls django-2.2

我将开始说这不是重复的问题。我的问题与Django 2.2的网址有些不同。

当将HttpResponseRedirect返回到同一应用程序中的另一个视图时,视图触发的“ str”对象不是映射错误。

我真的不知道怎么了。我在同一项目中的其他应用程序中使用了相同的方法,并且有效。

项目urls.py

urlpatterns = [
    url(r'^$', Home.as_view()),
    path('dashboard/', include('dashboard.urls')),
    path('main/', include('main.urls'))
]

应用urls.py

urlpatterns = [
  path('', views.Section.as_view(), name='main-form')
]

应用程序views.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")

发布主页表格后,它应该重定向到主表格视图(Section视图类),但出现错误。

如果我在模板网址{% url 'main-form' %}中使用网址,则会触发相同的错误

如果我手动导航以从地址栏查看,则视图呈现良好。

怎么了?

1 个答案:

答案 0 :(得分:1)

尝试为您的Django应用urls.py文件添加应用名称,例如

app_name ='smth'

urlpatterns = [
  path('', views.Section.as_view(), name='main-form')
]

然后在模板视图文件中包括:href={% url 'smth:main-form' %}