因此,我正在尝试使用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>
有人知道如何解决此问题吗?
谢谢,尼梅图。
您收到的错误是因为您访问的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