收到“找不到页面 (404) 没有产品与给定查询匹配。”错误

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

从数据库中删除所有产品后,我开始收到此错误(我这样做是因为它只是用于测试的虚拟数据)。当我运行服务器并转到本地主机时,我看到这个错误

该错误指出,尽管产品未在主页上调用,但该问题是在“home.views.index”中提出的。我觉得我的应用程序正在寻找产品,但在找不到产品时崩溃了。

这是我的应用程序 urls.py 的代码

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
     path('', include('home.urls')),
     path('admin/', admin.site.urls),
     path('products/', include('products.urls')),
     path('checkout/', include('checkout.urls')),
     path('bag/', include('bag.urls')),
     path('contact/', include('contact.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这是我的产品/urls.py

from django.urls import path
from . import views
urlpatterns = [
     path('', views.all_products, name='products'),
     path('<int:product_id>/', views.product_detail, name='product_detail'),
]

这是 products/views.py 的代码

from django.shortcuts import render
from .models import Product
def all_products(request):
    products = Product.objects.all()

    context = {
         'products': products,
 }

return render(request, "products/products.html", context )

def product_detail(request, product_id):
     product = get_object_or_404(Product, pk=product_id)

     context = {
        'product': product,
    }

return render(request, 'products/product_detail.html', context)

这是 home/urls.py 的代码

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='home')
]

这是 home/views.py 的代码

from django.shortcuts import render

def index(request):
    return render(request, 'home/index.html')

这里是index.html

{% extends "base.html" %}
{% load static %}

{% block content %}
    <body class="front bg-pattern-dark">
        <div class="body">
            <div role="main" class="main">
                <section class="highlight-shop grid-pro">
                    <div class="container">
                        <div class="row">
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/adustable-dumbell.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Long Sleeve Shirts</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/Bar.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Jean</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/Bench.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Shirts</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/Bumper-plate.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Bags</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/Mat.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Watches</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                            <div class="col-xs-6 col-sm-4">
                                <div class="cat-thumb-item cat-thumb-item-grid">
                                    <img alt="Autumn / Winter 2014" src="{% static '/images/Rack.jpg' %}" class="img-responsive">
                                    <div class="cat-caption bg-color7">
                                        <h3><a href="#">Accessories</a></h3>
                                        <p><a href="#">Shop now</a></p>
                                    </div>  
                                </div>
                            </div>
                        </div>
                    </div>
                </section>
            </div>
        </div>
    </body>
</html>
{% endblock %}

这里是base.html

{% load static %}
<!DOCTYPE html>
<html>
    <head>

        <!-- Basic -->
        <meta charset="utf-8">
        <title>AlfaRyse</title>     
        <meta name="keywords" content="HTML5 Template" />
        <meta name="description" content="AlfaRyse">
        <meta name="author" content="pixelgeeklab.com">
    <base href="{% static '/' %}">

        <!-- Mobile Metas -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Web Fonts  -->
        <link href='http://fonts.googleapis.com/css?family=Dosis:300,400,500,600,700' rel='stylesheet' type='text/css'>

        <!-- Vendor CSS -->
        <link rel="stylesheet" href="vendor/fontawesome/css/font-awesome.css">
        <link rel="stylesheet" href="vendor/owlcarousel/owl.carousel.css" media="screen">
        <link rel="stylesheet" href="vendor/owlcarousel/owl.theme.css" media="screen">
        <link href="vendor/owl-carousel/owl.transitions.css" rel="stylesheet" media="screen">
        <link rel="stylesheet" href="vendor/flexslider/flexslider.css" media="screen">
        <link rel="stylesheet" href="vendor/chosen/chosen.css" media="screen">
        <link rel="stylesheet" href="vendor/magnific-popup/magnific-popup.css" media="screen">

        <!-- Theme CSS -->
        <link rel="stylesheet" href="css/theme.css">
        <link rel="stylesheet" href="css/theme-animate.css">
        
        <!-- Style Switcher-->
        <link href="css/colors/default/style.css" rel="stylesheet" id="layoutstyle">

        <!-- Head libs -->
        <script src="vendor/modernizr/modernizr.js"></script>

        <!--[if IE]>
            <link rel="stylesheet" href="css/ie.css">
        <![endif]-->

        <!--[if lte IE 8]>
            <script src="vendor/respond/respond.js"></script>
            <script src="vendor/excanvas/excanvas.js"></script>
        <![endif]-->

    </head>
  <header id="header">
    <div class="header-top">
      <div class="container row">
        <a href="#offcanvas" class="uk-navbar-toggle hidden-lg" data-uk-offcanvas>
          <span class="sr-only">Toggle navigation</span>
          <i class="fa fa-bars"></i>
        </a>
        <div class="col-md-4">
          <a href="{% url 'home' %}">
            <img class="img-responsive" src="{% static '/images/AlfaRyse Logo.png' %}" alt="">
          </a>
        </div>
        <nav>
          <ul class="nav nav-pills nav-top nav-top-right">
            <li class="shopping-cart">
              <a href="#offcanvas-cart" data-uk-offcanvas><i class="fa fa-shopping-cart"></i> <span><span>{% if total %}
                ${{ total|floatformat:2 }}
            {% else %}
                $0.00
            {% endif %}</span></span></a>
            </li>
          </ul>
        </nav>
        <div class="navbar-collapse nav-main-collapse collapse">
          <nav class="nav-main">
            <ul class="nav nav-pills nav-main-menu">
              <li class="dropdown active">
                <a href="{% url 'home' %}" class="dropdown-toggle">Home</a>
              </li>
              <li class="dropdown active">
                <a href="{% url 'products' %}" class="dropdown-toggle">Product</a>
              </li>
              <li class="dropdown active">
                <a href="{% url 'contact' %}" class="dropdown-toggle">Contact Us</a>
              </li>
            </ul>
          </nav>
        </div>  
      </div>    
    </div>
  </header>
  <main>
    {% block content %}
    {% endblock %}
    <div id="offcanvas" class="uk-offcanvas">
      <div class="uk-offcanvas-bar">
        <ul id="main-menu-offcanvas" class="uk-nav-offcanvas">
          <li class="uk-parent uk-active">
            <a href="#">Home</a>
          </li>
          <li class="uk-parent">
            <a href="#">Products</a>
          </li>
          <li class="uk-parent">
            <a href="contact.html">Contact Us</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="offcanvas-cart" class="uk-offcanvas">
            <div class="uk-offcanvas-bar uk-offcanvas-bar-flip">
                <div class="uk-panel">
                    <h3>Cart</h3>
                    <ul class="list-thumbs-pro">
            {% if bag_items %}
            {% for item in bag_items %}
                        <li class="product">
                            <div class="thumb-item">
                                <div class="thumb-item-img">
                  {% if item.product.image %}
                                    <a href="#"><img width="80" src="{{ item.product.image.url }}" alt="{{ item.product.name }}"></a>
                  {% else %}
                  <a href="#"><img width="80" src="{{ MEDIA_URL }}noimage.png" alt="{{ item.product.name }}"></a>
                  {% endif %}
                                </div>
                                <div class="thumb-item-content">
                                    <h3><a href="#">{{ item.product.name }}</a></h3>
                                    <p class="product-price"><ins>${{ item.product.price }}</ins></p>
                                </div>
                            </div>
                        </li>
                    </ul>
                    <ul class="list-inline cart-subtotals">
                        <li class="cart-subtotal"><strong>Subtotal:</strong></li>
                        <li class="price"><span class="amount"><strong>${{ total|floatformat:2 }}</strong></span></li>
                    </ul>
          {% endfor %}
          {% endif %}
                    <a href="{% url 'view_bag' %}" class="btn btn-dark btn-block">View Cart</a>
                    <a href="shop-checkout.html" class="btn btn-primary btn-block">Go to Checkout</a>
                </div>
            </div>
  </main>
  <footer id="footer" class="bg-color6">
    <div class="container">
      <div class="row">
        <div class="col-md-3">
          <h4>Contact Us</h4>
          <p>Morbi accumsan ipsum velit. Nam nec tellus a odio tincidunt auctor</p>
          <address>
            To order: +12 345 6789<br>
            Client support: +12 987 6543<br>
            Email: <a href="mailto:[email protected]">[email protected]</a>
          </address>
          <ul class="social-icons">
            <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Facebook"><i class="fa fa-facebook"></i></a></li>
            <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Twitter"><i class="fa fa-twitter"></i></a></li>
            <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Google Plus"><i class="fa fa-google-plus"></i></a></li>
            <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Instagram"><i class="fa fa-instagram"></i></a></li>
            <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Flickr"><i class="fa fa-flickr"></i></a></li>
          </ul>
        </div>
        <div class="col-md-2">
          <h4>Categories</h4>
          <ul class="list-links">
            <li><a href="#">Men</a></li>
            <li><a href="#">Women</a></li>
            <li><a href="#">Accessories</a></li>
            <li><a href="#">Bestsellers</a></li>
            <li><a href="#">Special Products</a></li>
            <li><a href="#">Sale Off</a></li>
          </ul>
        </div>
        <div class="col-md-2">
          <h4>Useful links</h4>
          <ul class="list-links">
            <li><a href="#">About Us</a></li>
            <li><a href="#">Size guide</a></li>
            <li><a href="#">Postage + Delivery</a></li>
            <li><a href="#">Shipping & Returns</a></li>
            <li><a href="#">Privacy Policy</a></li>
            <li><a href="#">Returns + Exchangees</a></li>
            <li><a href="#">Terms + Conditions</a></li>
          </ul>
        </div>
        <div class="col-md-2">
          <h4>Latest Tweets</h4>
          <ul class="latest-tweets">
            <li>Nam nec tellus a odio tincidunt auctor a  odio. Sed non  <a href="http://pixelgeeklab.com" target="_blank">http://pixelgeeklab.com</a> <span class="tweet-date">2 days ago</span></li>
          </ul>
        </div>
        <div class="col-md-3">
          <div class="footer-copyright">
            <p><img src="images/logo-w.png" alt=""></p>
            <p>© 2014 Marvel. All Rights Reserved. Designed by <a href="http://pixelgeeklab.com" target="_blank">Pixelgeeklab.com</a>.</p>
            <ul class="card-icons">
              <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Paypal"><i class="fa fa-cc-paypal"></i></a></li>
              <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Mastercard"><i class="fa fa-cc-mastercard"></i></a></li>
              <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Visa"><i class="fa fa-cc-visa"></i></a></li>
              <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="Discover"><i class="fa fa-cc-discover"></i></a></li>
              <li><a href="#" target="_blank" data-toggle="tooltip" data-placement="top" title="AMEX"><i class="fa fa-cc-amex"></i></a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </footer>
  <!-- Vendor -->
  <script src="vendor/jquery/jquery.js"></script>
  <script src="vendor/bootstrap/bootstrap.js"></script>
  <script src="vendor/jquery.validation/jquery.validation.js"></script>
  <script src="vendor/owlcarousel/owl.carousel.js"></script>
  <script src="vendor/flexslider/jquery.flexslider-min.js"></script>
  <script src="vendor/countdown/countdown.min.js"></script>
  <script src="vendor/chosen/chosen.jquery.min.js"></script>
  <script src="vendor/pricefilter/jquery.pricefilter.js"></script>
  <script src="vendor/masonry/imagesloaded.pkgd.min.js"></script>
  <script src="vendor/masonry/masonry.pkgd.min.js"></script>
  <script src="vendor/uikit/uikit.js"></script>
  <script src="vendor/magnific-popup/jquery.magnific-popup.js"></script>
  
  <!-- Theme Base, Components and Settings -->
  <script src="js/theme.js"></script>
  {% block postloadjs %}
    <script type="text/javascript">
        $('.toast').toast('show');
    </script>
  {% endblock %}
</body>

</html>

非常感谢您提供的任何帮助,如果我遗漏了一些重要信息,请评论我遗漏的内容,我会添加它。

python django postgresql
1个回答
0
投票

你应该最后添加 home.urls

或者,

在 home.urls 中添加其他路径

urlpatterns = [
     # path('', include('home.urls')),
     path('admin/', admin.site.urls),
     path('products/', include('products.urls')),
     path('checkout/', include('checkout.urls')),
     path('bag/', include('bag.urls')),
     path('contact/', include('contact.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

**urlpatterns.append(path('', include('home.urls')))**
© www.soinside.com 2019 - 2024. All rights reserved.