如何从数据库中选择特定数据并将其呈现为Django模板?

时间:2019-05-07 17:03:58

标签: python django

我正在尝试使用Django 2.2.1建立网站,所以当前存在的问题是我有一个名为“产品”的模型。 我还有一个名为“ product_list.html”的模板。 我的“ views.py”文件是:-

from .models import Product
from .forms import ProductForm
# Create your views here.


def product_detail_view(request):
    obj = Product.objects.all()
    context = {
      "title": obj,
      "description": obj,
      "price": obj
#context = {
#    'object': obj
}
return render_to_response("product_list.html",context)

我的models.py文件:-

from django.db import models

# Create your models here.
class Product(models.Model):
title = models.CharField(max_length=50)
description = models.TextField(null=True)
price = models.DecimalField(max_digits=100, decimal_places=2)

我的product_list.html文件:-

{% extends 'base.html' %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product List</title>
</head>
<body>
{% block content %}
<ul>
  <li>
          {{ title }}
  </li>
  <li>
          {{ obj.title }}
  </li>
</ul>
<ul>
   {% for prod in title %}
  <li>
      {{ prod.title | upper }}
  </li>
   {% endfor %}
</ul>

<ul>
 {% for prod in description %}
  <li>
       {{ prod.description|default:"nothing" }}
  </li>
   {% endfor %}
</ul>

<ul>
 {% for prod in price %}
  <li>
       {{ prod.price }}
  </li>
   {% endfor %}
</ul>

<ul>
 {% for prod in price %}
  <li>
       {{ prod.title }}
       {{ prod.description }}
       {{ prod.price }}
  </li>
   {% endfor %}
 </ul>


{% endblock %}
</body>
</html>

我得到的输出是:-

https://www.dropbox.com/s/xmogdmgerf3cbu6/Image%205-7-19%20at%2010.11%20PM.jpg?dl=0

因此,问题是我该如何选择例如: 我只想要产品1的标题和描述。 ((正如我在product_list.html文件中尝试过的一样...    我已经尝试过{{title}}和{{obj.title}}    他们两个都无法向我提供我想要的
数据    数据库。)

我仅在使用{{for}}时才能渲染并获取该数据 功能objects.all()。

我看到的另一个选项是更改我的视图功能..并用 “ objects.get(id)”

但是如果我没有记错的话,我将不得不发表多个观点。

是否还有其他功能或任何其他django模板语言过滤器可以在仍使用“ objects.all()”的情况下为我提供相同的结果 功能。

或者我还有其他错误或错误吗?

0 个答案:

没有答案