“找不到”的反转不是有效的视图函数或模式nam

2024-04-26 13:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一行添加或删除到数据库中,使用一个按钮单击该按钮可重定向回同一页,以下是我的文件

视图.py

def favorite_item (request, pk):
    favitem = get_object_or_404(Item, pk=pk)
    userfav = Favorite.objects.filter(user=request.user)
    for items in userfav:
        if items.item == favitem:
            items.delete()
        else:
            items = Favorite(item=favitem, user=request.user)
            items .save()

    return redirect('')

url.py

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

html

              <a href="{% url 'favorite_item' dress.id %}">
                  <img src="{% static 'img/gold_star.png' %}"></a>

但每当我点击它我就会得到一个错误:

错误

Reverse for '' not found. '' is not a valid view function or pattern name.

整个回溯

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/3/favorite_item/

Django Version: 2.0.5
Python Version: 3.6.5
Installed Applications:
['django_filters',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'fostania_web_app.apps.FostaniaWebAppConfig']
Installed Middleware:
('whitenoise.middleware.WhiteNoiseMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')



Traceback:

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\exception.py" in inner
  35.             response = get_response(request)

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "F:\django\fostania\fostania_web_app\views.py" in favorite_item
  278.     return redirect('')

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\shortcuts.py" in redirect
  58.     return redirect_class(resolve_url(to, *args, **kwargs))

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\shortcuts.py" in resolve_url
  149.         return reverse(to, args=args, kwargs=kwargs)

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\base.py" in reverse
  88.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

File "C:\Users\LiTo\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
  632.         raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /3/favorite_item/
Exception Value: Reverse for '' not found. '' is not a valid view function or pattern name.

Tags: djangoinpyliblocalitemcontribmiddleware
1条回答
网友
1楼 · 发布于 2024-04-26 13:23:50

感谢您添加回溯。这是重定向调用。因此,当您使用重定向快捷方式方法时,您提供的字符串需要与至少一个已配置路径中的name变量匹配。所以当我试图重定向到我的项目中没有任何内容时:

return redirect("")

我得到完全相同的错误,因为我没有为此配置路径:

urlpatterns = [
    path('<int:key>/authors/', views.get_authors, name='authors'),
    path('home/', views.home, name='home')
]

但当我改变了回家的路,用了这个名字:

urlpatterns = [
    path('<int:key>/authors/', views.get_authors, name='authors'),
    path('home/', views.home, name='')
]

维奥拉,转到家里。

相关问题 更多 >