Разбор в набор запросов для носителей информации о продукте
У меня есть две разные модели для моего продукта. Одна предназначена для информации о продукте, а другая - для медиа продукта.
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. Как я могу добавить медиаконтент в вышеупомянутый набор запросов элементов?