سلام. با روش گفته شده برای پیاده سازی محصولات مرتبط، خود اون محصول هم نشون میده که طبیعتا نباید اینطور باشه. کسی از دوستان راه حلی برای این موضوع داره؟
سلام دوست من
از داخل کوئری مورد نظر ، محصول اصلی رو حذف کنین و یا هنگام اجرای حلقه ، ایتمی که id اون با id محصول اصلی یکی هست رو از لیست خارج کنین
با استفاده از دستور exclude داخل query_set می تونین آیتم با مشخصات وارد شده ignore کنین.
def get_related_products(self):
return self.get_queryset.exclude(id=product_id).filter(category=productcategoty)
کد بالا به عنوان مثاله و فیلترهاش درست نیست
related_product = Product.objects.get_queryset().filter(categories__product=product).exclude(title=product.title).distinct()
این کد رو برای فیلتر اضافه کن
related_product = Product.objects.get_queryset().filter(categories__product=product).exclude(id=product.id).distinct()
با ایدی فیلتر شه بهتره :))
اینم بگم اگر میخواهید بگید مثلا اگر محصولات بیشتر از یک دسته بود، علامت برای جابهجا اگر محصولات مرتبط بیاد این رو بزنید:
{% if grouped_related_product|length > 1 %}
<a class="left recommended-item-control" href="#recommended-item-carousel"
data-slide="prev">
<i class="fa fa-angle-left"></i>
</a>
<a class="right recommended-item-control" href="#recommended-item-carousel"
data-slide="next">
<i class="fa fa-angle-right"></i>
</a>
{% endif %}
درود بر شما
این کد توی پروژه خودم تست کردم جواب داده شماهم تست کنین احتمال قوی جواب میگیرین
related_products = Product.objects.get_queryset().exclude(id=selected_product_id).filter(categories__product=selected_product_id).distinct()