【问题标题】:Django-2.2 NoReverseMatch error. Cannot redirect to next pageDjango-2.2 NoReverseMatch 错误。无法重定向到下一页
【发布时间】:2019-12-02 07:20:30
【问题描述】:

在我的网络应用程序中提交创建表单后,它应该重定向到显示输入的新产品的单个页面。相反,它显示:

Reverse for 'category' with keyword arguments '{'pk': UUID('e3ec4273-22c9-450f-87c9-d12973dce3c1')}' not found. 1 pattern(s) tried: ['app/products/category/<int:pk>']

views.py

def create_category(request):
    if request.method=='POST':
        form = CategoryForm(request.POST,request.FILES)

        if form.is_valid():
            data = form.save(commit=False)
            data.creator = request.user
            data.updater = request.user
            data.auto_id = get_auto_id(ProductCategory)
            data.save()

            return HttpResponseRedirect(reverse('products:category',kwargs={"pk":data.pk}))
        else:
            ...
    else:
        ...
def category(request,pk):
    instance = get_object_or_404(ProductCategory.objects.filter(pk=pk))
    context = {
        'title': "Category : " + instance.name,
        'instance' : instance,
    }
    return render(request,'products/category.html',context)

urls.py

from django.urls import path
from . import views


app_name = 'products'

urlpatterns = [
    path('categories',views.categories,name='categories'),
    path('category/create',views.create_category,name='create_category'),
    path('category/<int:pk>',views.category,name='category'),
    path('category/edit/<int:pk>',views.edit_category,name='edit_category'),
    path('category/delete/<int:pk>',views.delete_category,name='delete_category'),
]

事情是提交表单并将值添加到数据库中。但它并没有进入下一步。

我是 django 2 的新手,所以不太清楚如何在 urls/path 中传递 pk

【问题讨论】:

  • 您可以尝试将您的网址更改为:path('category/&lt;uuid:pk&gt;',views.category,name='category'),

标签: python django django-urls django-2.2


【解决方案1】:

在您的网址中:

path('category/<int:pk>',views.category,name='category'),
               ^^^^

您期望一个 整数,但在代码中您传递的是一个 UUID。所以把网址改成:

path('category/<uuid:pk>',views.category,name='category'),

更多信息可以在documentation找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2014-01-20
    • 2023-03-21
    • 2017-08-15
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多