我将开始说这不是重复的问题。我的问题与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' %}
中使用网址,则会触发相同的错误
如果我手动导航以从地址栏查看,则视图呈现良好。
怎么了?
答案 0 :(得分:1)
尝试为您的Django应用urls.py文件添加应用名称,例如
app_name ='smth'
urlpatterns = [
path('', views.Section.as_view(), name='main-form')
]
然后在模板视图文件中包括:href={% url 'smth:main-form' %}