首页 > 解决方案 > 为什么我的 django 模型数据不显示在 html 中

问题描述

按照教程,我正在创建一个简单的电子商务网站。我将数据存储在 Django 模型中,我在视图中调用它,但它不会显示在我的 html 中。基本上,我希望它为捐赠模型中的每一笔捐赠创建一个如下框,但它不起作用。有人可以帮帮我吗?我知道这似乎很容易解决,但我无法理解它。我的代码在下面。

看法:

def availablesupplies(request):
    donations = Donation.objects.all()
    context = {'donations':donations}
    return render(request, 'availablesupplies.html')

模型:

class Donation(models.Model):
  title = models.CharField(max_length=30)
  phonenumber = models.CharField(max_length=12)
  category = models.CharField(max_length=20)
  quantity  = models.IntegerField(blank=True, null=True,)
  location = models.CharField(max_length=50, blank=True, null=True,)       
  description = models.TextField()
  datedonated = models.DateTimeField(auto_now_add=True)
  user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        blank=True,
        null=True,
    )

HTML:

<div class="row">
        {% for donation in donations %}
        <div class="col-lg-4">
            <img class="thumbnail" src="{% static 'images/gooddeedplaceholderimage.png' %}">
            <div class="box-element product">
                <h6><strong>Product</strong></h6>
                <hr>

                <button  class="btn btn-outline-secondary add-btn">Add to Cart</button>
                <a class="btn btn-outline-success" href="#">View</a>
                <h4 style="display: inline-block; float: right"><strong>$20</strong></h4>

            </div>
        </div>
        {% endfor %}
    </div>

{% endblock content %}

标签: pythondjango

解决方案


您需要将上下文对象传递给渲染引擎

def availablesupplies(request):
    donations = Donation.objects.all()
    context = {'donations':donations}
    #                                  pass the context ↓
    return render(request, 'availablesupplies.html', context)

推荐阅读