Как отобразить результат запроса в django
У меня есть приложение под названием marketplace и в приложении есть модель под названием Product, из которой я хочу получить данные, чтобы отобразить их в моем html файле, но похоже, что это не работает.
Вот модель:
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
inventory = models.ForeignKey(ProductInventory, on_delete=models.CASCADE)
product_name = models.CharField(max_length=30)
product_description = models.CharField(max_length=250)
price = models.DecimalField(max_digits=10, decimal_places=2)
subscription_length = models.IntegerField()
Вот код, используемый в файле views.py
def product_page(request):
product_description = Product.objects.raw('SELECT product_description FROM marketplace_product WHERE product_name = "abcdef" ')
context = {'product_description': product_description}
return render(request, 'main/product-page.html', context)
Вот конечный результат, как вы можете видеть, он отображает запрос, а не данные результата.
Как сделать так, чтобы он отображал результат SQL запроса, а не сам запрос. Спасибо
Во-первых, вы действительно должны использовать raw, только если вы делаете запрос, который не может быть выполнен с помощью orm. То, что вы хотели, было
product_description = Product.objects.filter(product_name='abcdef').values('product_description')
Во-вторых, вы передаете в шаблон набор запросов. Вам нужно что-то с ним сделать... может быть, создать список с описаниями всех товаров, перебирая кверисет?