Django重定向到另一个页面不起作用

问题描述 投票:0回答:1

因此,我正在尝试使用Django和HTML创建网络商店。简而言之,我的问题是,当我按下导航栏上的“产品”按钮时,出现了404错误。This is the error it gives me.

这也给我终端中的错误The error in the terminal.

我一直在努力找出过去一个小时出了什么问题,但似乎没有任何效果。这是我的代码;

((文件product.html位于名为“ templates”的文件夹中)

我的views.py文件

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Item # Skriptist models.py impordib eseme (Item'i) #


def product(request):
    context = {
        "items": Item.objects.all()
    }
    return render(request, "product.html", context)

def checkout(request):
    return render(request, "checkout.html")



class HomeView(ListView):
    model = Item
    template_name = "home.html"


class ItemDetailView(DetailView):
    model = Item
    template_name = "product.html"

我的urls.py文件

from django.urls import path
from django.conf.urls import include, url
from .views import (
    ItemDetailView,
    checkout,
    HomeView
)
# Skriptist views.py improdib "item_list'i" #

app_name = "core"

urlpatterns = [
    path('', HomeView.as_view(), name='home'),
    path('checkout/', checkout, name='checkout'),
    path('product/<slug>/', ItemDetailView.as_view(), name='product'),
]

最后这是我的scripts.html文件,其中包含所有JavaScript内容。

{% load static %}

<script type="text/javascript" src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="{% static 'js/popper.min.js' %}"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="{% static 'js/mdb.min.js' %}"></script>
<!-- Initializations -->
<script type="text/javascript">
  // Animations initialization
  new WOW().init();

</script>

有人知道如何解决此问题吗?

谢谢,尼梅图。

html django url
1个回答
0
投票

您收到的错误是因为您访问的URL与urls.py中的任何模式都不匹配。您正在访问的http://127.0.0.1:8000/product无效,因为您的模式先有一个斜杠,然后是一个子弹,尽管定义也不正确。

您的网址格式应为

urlpatterns = [
    path('', HomeView.as_view(), name='home'),
    path('checkout/', checkout, name='checkout'),
    path('product/<slug:slug>/', ItemDetailView.as_view(), name='product'),
]

然后您可以访问URL,例如:

如果要http://127.0.0.1:8000/product工作,则需要添加一个新条目并确定其应显示的内容,例如ListView

© www.soinside.com 2019 - 2024. All rights reserved.