Представления Django не отображаются в шаблоне

Может кто-нибудь подскажет, что я делаю не так? 1-я функция(all_products) прекрасно отображается в шаблоне, но последние 2 - нет.

models.py

# TABLE BRAND
class Brand(models.Model):
    name = models.CharField(max_length = 50)

# TABLE PRODUCT
class Product(models.Model):
    title       = models.CharField(max_length = 100)
    brand       = models.ForeignKey(Brand, on_delete = models.CASCADE)
    image       = models.ImageField(null = False, blank = False, upload_to ="images/",)
    price       = models.DecimalField(max_digits = 100, decimal_places = 2, )
    created     = models.DateTimeField(auto_now_add = True )

функции в файле views.py

def all_products(request):
    products = Product.objects.all()
    return render(request, 'store/home.html', {'products': products})

def newest_products(request):
    sixNewestProduct = Product.objects.all().order_by('-created')[:6]
    return render(request, 'store/home.html', {'sixNewestProduct': sixNewestProduct})

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.all_products, name= 'all_products'), 
    path('', views.newest_products, name= 'newest_products'), 
    path('', views.newest_discount, name= 'newest_discount'), 
]

часть шаблона выглядит следующим образом:

            {% for new in sixNewestProduct %}
            <a  href="#" class="">
                <div class="newProduct">
                    <img src="{{new.image.url}}" alt="">
                </div>
                <h5>{{new.brand.name}}</h5>
                <h4>{{new.title}}</h4>
                <p>{{new.price}} GNF</p>
            </a>
            {% endfor %}

Необходимо исправить путь url следующим образом

from django.urls import path
from . import views

urlpatterns = [
    path('', views.all_products, name= 'all_products'), 
    path('newest_products/', views.newest_products, name= 'newest_products'), 
    path('newest_discount/', views.newest_discount, name= 'newest_discount'), 
]

Django сопоставляет запрос с первым встреченным представлением, путь которого совпадает с путем текущего запроса:

from django.urls import path
from . import views

urlpatterns = [
    # Django will always match this '' to the view `all_products`
    path('', views.all_products, name= 'all_products'), 
    path('', views.newest_products, name= 'newest_products'), 
    path('', views.newest_discount, name= 'newest_discount'), 
]

Как ответил @Mahammadhusain kadiwala, вам придется добавить разные пути маршрута для каждого представления

Вернуться на верх