У меня есть продукты по категориям в моем приложении Django, я получаю продукты в определенной категории, и когда я перехожу на страницу просмотра одного продукта, мне нужен продукт, связанный с одной категорией продукта, я хочу, чтобы там были связанные продукты, который доступен на вышеприведенной странице просмотра одного продукта.
Вот мой models.py
файл для subcategory
и product
class Product(models.Model):
name=models.CharField(max_length=225)
slug=models.SlugField(max_length=225, unique=True)
subcategory=models.ForeignKey('SubCategory', related_name='prosubcat', on_delete=models.CASCADE, blank=True, null=True)
brand=models.ForeignKey('Brand', related_name='product_brand', on_delete=models.CASCADE, blank=True, null=True)
supplement= models.ForeignKey('Supplement', related_name='product_supplement', on_delete=models.CASCADE, blank=True, null=True)
totalprice=models.IntegerField()
price = models.IntegerField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class SubCategory(models.Model):
subcat_name=models.CharField(max_length=225)
subcat_slug=models.SlugField(max_length=225, unique=True)
category = models.ForeignKey('Category', related_name='subcategoryies', on_delete=models.CASCADE, blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.subcat_name
вот мой views.py
файл ... для отображения одного вида продукта
def productview(request, slug):
category = Category.objects.all()
subcategories = SubCategory.objects.all()
product = Product.objects.select_related('subcategory').get(slug=slug)
#test=product.subcategory_id.all()
related = Product.objects.select_related('subcategory')[0:6]
template_name='mainpage/product-view.html'
context={'product':product,'related':related, 'category':category, 'subcategories':subcategories}
return render(request, template_name, context)
Я получаю продукты из всех подкатегорий, используя related
, и я хочу отфильтровать из product
вот мой product-view.html
файл ...
{% for relatedpro in related %}
<div class="col-xl-2 col-md-4 col-sm-6">
<div class="product-box">
<div class="img-wrapper">
<div class="front">
<a href="/product/{{relatedpro.slug}}" class="bg-size blur-up lazyloaded"><img src="{{relatedpro.first_image.image.url}}" class="img-fluid blur-up lazyload bg-img" alt="" style="display: none;"></a>
</div>
<div class="back">
<a href="/product/{{relatedpro.slug}}" class="bg-size blur-up lazyloaded"><img src="{{relatedpro.first_image.image.url}}" class="img-fluid blur-up lazyload bg-img" alt="" style="display: none;"></a>
</div>
<div class="cart-info cart-wrap">
<!-- data-toggle="modal" data-target="#addtocart" -->
<button data-product={{relatedpro.id}} data-action="add" class="btn-btn-outline-secondary add-btn update-cart" title="Add to cart"><i class="ti-shopping-cart"></i></button>
<a href="javascript:void(0)" title="Add to Wishlist"><i class="ti-heart" aria-hidden="true"></i></a>
<a href="#" data-toggle="modal" data-target="#quick-view" title="Quick View"><i class="ti-search" aria-hidden="true"></i></a>
<a href="javascript:void()" title="Compare"><i class="ti-reload" aria-hidden="true"></i></a>
</div>
</div>
<div class="product-detail">
<!-- <div class="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"></i></div> -->
<a href="/product/{{relatedpro.slug}}">
<h6>{{relatedpro.name}}</h6>
</a>
<h4>₹ {{relatedpro.price}}</h4>
</div>
</div>
</div>
{% endfor %}