Разбор в набор запросов для носителей информации о продукте

У меня есть две разные модели для моего продукта. Одна предназначена для информации о продукте, а другая - для медиа продукта.

class Products(models.Model):
    id=models.AutoField(primary_key=True)
    url_slug=models.CharField(max_length=255)
    subcategories_id=models.ForeignKey(SubCategories,on_delete=models.CASCADE)
    product_name=models.CharField(max_length=255, null=True)
    brand=models.CharField(max_length=255)
    max_price=models.DecimalField(max_digits=7, decimal_places=2)
    discount_price=models.DecimalField(max_digits=7, decimal_places=2)
    product_description=models.TextField()
    product_long_description=models.TextField()
    created_at=models.DateTimeField(auto_now_add=True)
    in_stock_total=models.IntegerField(default=1)
    is_active=models.IntegerField(default=1)


class ProductMedia(models.Model):
    id=models.AutoField(primary_key=True)
    product_id=models.ForeignKey(Products,on_delete=models.CASCADE)
    media_type_choice=((1,"Image"),(2,"Video"))
    media_type=models.CharField(max_length=255)
    media_content=models.FileField(upload_to="media")
    created_at=models.DateTimeField(auto_now_add=True)
    is_active=models.IntegerField(default=1)

Теперь у меня есть два пользовательских модуля, один из которых не требует аутентификации, а другой предназначен для аутентифицированного пользователя. Для неаутентифицированного пользователя у меня есть словарь элементов следующего вида.

items=[]
item = {
            'product' :{
                'id': product.id,
                'media_content': media.media_content,
                'product_name': product.product_name,
                'discount_price': product.discount_price,
            },
            'quantity': cart[i]["quantity"],
            'get_total': total,
        }
items.append(item)

для аутентифицированного пользователя мои элементы - это набор запросов:

if request.user.is_authenticated:
    customer_user = CustomerUser.objects.get(user = request.user)
    order, created = Order.objects.get_or_create(customer_user, complete=False)
    items = order.orderitem_set.all()
    cartItems = order.get_cart_items

Теперь, когда я хочу вызвать медиа продукта в html для неаутентифицированного пользователя, я вызываю {{item.product.media_content}} чтобы иметь видимое изображение товара в корзине. Но это не работает для аутентифицированного пользователя. Я не хочу менять команду html. Как я могу добавить медиаконтент в вышеупомянутый набор запросов элементов?

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