Не может быть перенаправлено после действия формы в Django - PullRequest
1 голос
/ 11 января 2020

Я создал форму для создания нового элемента в Django. Приложение должно быть перенаправлено на item_new, но оно не работает. Это ошибка ниже.

Страница не найдена http://127.0.0.1.8000/item/new

показать. html

    <form
      action="{% url 'item_new' %}"
      method="POST"
      enctype="multipart/form-data"
    >
      {% csrf_token %}
      <div class="formItem">
        <label>Name</label>
        <input type="name" name="name" />
      </div>
      <div class="formBtn">
        <input type="submit" class="btn btnPrimary" value="Submit" />
      </div>
    </form>

urls.py

urlpatterns = [
    path('item/<slug:slug>/', views.item_detail, name='item_detail'),
    path('item/new/', views.item_new, name='item_new'),
]

views.py

def item_detail(request, slug):
    item = get_object_or_404(Item, slug=slug)
    return render(request, 'item/show.html', {'item': item})

def item_new(request):
    return redirect('home')

1 Ответ

1 голос
/ 11 января 2020

В вашем файле urls.py измените порядок строк. Вот так:

urlpatterns = [
    path('item/new/', views.item_new, name='item_new'),
    path('item/<slug:slug>/', views.item_detail, name='item_detail'),
]

Порядок URL, имеет значение. В вашей текущей ситуации запросы к http://127.0.0.1.8000/item/new будут отправляться в item_detail функцию просмотра вместо item_new.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...