Как исправить объект 'str' не является ошибкой отображения - PullRequest
0 голосов
/ 25 апреля 2019

Я начну говорить, что это не дублированный вопрос.Моя проблема немного отличается в URL с Django 2.2.

Представление вызывает объект 'str' не является ошибкой сопоставления при возврате HttpResponseRedirect в другое представление в том же приложении.

Я действительно не понимаюне знаю, что не так.Я использую тот же метод в другом приложении в том же проекте, и он работает.

Проект 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")

После публикации домашней формы она должна перенаправляться в представление основной формы (класс представления раздела), но я получаю ошибку.

Она вызывает ту же ошибку, если я использую URL в URL шаблона{% url 'main-form' %}

Если вручную перейти к просмотру из адресной строки, представление будет отображаться нормально.

Что не так?

1 Ответ

1 голос
/ 28 мая 2019

Попробуйте включить имя приложения для вашего файла django urls.py, например

app_name ='smth'

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

Тогда в ваш файл представления шаблона включите: href={% url 'smth:main-form' %}

...