Я хочу классифицировать по слогам в Django

Я хочу, чтобы продукты с истинным бестселлером отображались в product.html, когда slug равен "cox-satanlar". Как я могу это сделать?

models.py

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

# Create your models here.

class Category(MPTTModel):
  name = models.CharField(max_length=100)
  slug = models.SlugField(max_length=100, unique=True)
  parent = TreeForeignKey('self', on_delete=models.CASCADE, blank=True, null=True, 
  related_name='children')

class MPTTMeta:
    order_insertion_by = ['name']

def __str__(self):
    full_path = [self.name]
    k = self.parent
    while k is not None:
        full_path.append(k.name)
        k = k.parent
    return '>>'.join(full_path[::-1])


class Product(models.Model):
  name = models.CharField(max_length=100)
  category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
  main_image = models.ImageField(upload_to='static/product_images/%Y/%m/%d/')
  detail = models.TextField()
  keywords = models.CharField(max_length=50)
  description = models.CharField(max_length=100)
  price = models.FloatField()
  sale = models.IntegerField(blank=True, null=True, verbose_name="Sale (%)")
  bestseller = models.BooleanField(default=False)
  amount = models.IntegerField(blank=True, null=True)
  available = models.BooleanField(default=True)
  date_created = models.DateTimeField(auto_now_add=True)

def __str__(self):
    return self.name

@property
def discount(self):
    dis = float(self.price - (self.price * self.sale) / 100)
    ln = ''
    if len(str(dis)) > 3:
        for i in str(dis):
            ln += i
            dis = float(ln)
            if len(ln) > 3:
                break
    return dis

views.py

def products(request, category_slug):
  category = Category.objects.all()
  products = Product.objects.all().filter(category__slug=category_slug)
  best_products = Product.objects.all().filter(bestseller=True)
  context = {'category': category,
           'products': products,
           'best_products': best_products}
  return render(request, 'products.html', context)

urls.py

urlpatterns = [
path('', views.index, name='index'),
path('register/', views.userRegister, name='register'),
path('login/', views.userLogin, name='login'),
path('products/<slug:category_slug>/', views.products, name='category_slug'),
]

Я делюсь важными частями HTML-кодов

products.html

<!-- Product Single -->
                        {% for product in products %}
                        {% if 'cox-satanlar' in request.paht %}
                        <div class="col-md-4 col-sm-4 col-xs-2">
                            <div class="product product-single">
                                <div class="product-thumb">
                                    <div class="product-label">
                                        <span>New</span>
                                        {% if product.sale %}
                                        <span class="sale">-{{product.sale}}%</span>
                                        {% endif %}
                                    </div>
                                    <button class="main-btn quick-view"><i class="fa fa-search-plus"></i> Göz At</button>
                                    <img src="{{product.main_image.url}}" alt="">
                                </div>
                                <div class="product-body">
                                    {% if product.sale %}
                                    <h3 class="product-price">{{product.discount}} AZN <del class="product-old-price">{{product.price}} AZN</del></h3>
                                    {% else %}
                                    <h3 class="product-price">{{product.price}} AZN</h3>
                                    {% endif %}
                                    <div class="product-rating">
                                        <i class="fa fa-star"></i>
                                        <i class="fa fa-star"></i>
                                        <i class="fa fa-star"></i>
                                        <i class="fa fa-star"></i>
                                        <i class="fa fa-star-o empty"></i>
                                    </div>
                                    <h2 class="product-name"><a href="#">{{product.name}}</a></h2>
                                    <div class="product-btns">
                                        <button class="main-btn icon-btn"><i class="fa fa-heart"></i></button>
                                        <button class="main-btn icon-btn"><i class="fa fa-exchange"></i></button>
                                        <button class="primary-btn add-to-cart"><i class="fa fa-shopping-cart"></i> Səbətə At</button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        {% endif %}
                        {% endfor %}
                        <!-- /Product Single -->

Надеюсь, я смог объяснить, что я хочу сделать. Когда url имеет вид http://127.0.0.1:8000/products/cox-satanlar/, товары-бестселлеры становятся реальностью

Очевидно, что существует несоответствие между тем, что я думаювы хотите, и тем, что вы на самом деле хотите, или где-то еще есть ошибка. Я только что попробовал ваш код, добавив "A Best Seller" в поле названия одного продукта, и "Not a Best Seller" в поле другого продукта, с приведенным ниже кодом в качестве products.html (NOTEя использовал sky в качестве slug вместо cox-satanlar):

{% for product in products %}
    {% if 'sky' in request.path and product.bestseller %}
    <div class="col-md-4 col-sm-4 col-xs-2">
        <div class="product product-single">
            <div class="product-thumb">
                <div class="product-label">
                    <span>New</span>
                    {% if product.sale %}
                    <span class="sale">-{{product.sale}}%</span>
                    {% endif %}
                </div>
                <button class="main-btn quick-view"><i class="fa fa-search-plus"></i> Göz At</button>
                <img src="{{product.main_image.url}}" alt="">
            </div>
            <div class="product-body">
                {% if product.sale %}
                <h3 class="product-price">{{product.discount}} AZN <del class="product-old-price">{{product.price}} AZN</del></h3>
                {% else %}
                <h3 class="product-price">{{product.price}} AZN</h3>
                {% endif %}
                <div class="product-rating">
                    <i class="fa fa-star"></i>
                    <i class="fa fa-star"></i>
                    <i class="fa fa-star"></i>
                    <i class="fa fa-star"></i>
                    <i class="fa fa-star-o empty"></i>
                </div>
                <h2 class="product-name"><a href="#">{{product.name}}</a></h2>
                <div class="product-btns">
                    <button class="main-btn icon-btn"><i class="fa fa-heart"></i></button>
                    <button class="main-btn icon-btn"><i class="fa fa-exchange"></i></button>
                    <button class="primary-btn add-to-cart"><i class="fa fa-shopping-cart"></i> Səbətə At</button>
                </div>
            </div>
        </div>
    </div>
    {% endif %}
    {% endfor %}

{% endblock %}

И что я получаю, так это следующее:

enter image description here

Обратите внимание, что "A Best Seller" появляется, потому что я сделал поле бестселлера True, но другой продукт, "Not a Best Seller" не появляется, потому что он не является таковым.

Разве это не то, о чем вы просите, или я что-то пропустил?

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