首页 > 解决方案 > 如何在 Django 模板中显示所有外键属性?

问题描述

我想获取所有外键表的属性并将其显示在我的 HTML 模板中。这是我在模型、视图和模板中的代码:

模型.py

class OrderDashboard(models.Model):
    title = models.CharField(max_length=100,default=None)
    single_slug = models.SlugField(max_length=100, default=1)
    description = models.TextField(max_length=1000)
    thumb = models.ImageField()
    date = models.DateField()

    def __str__(self):
        return self.title


class OrderScenario(models.Model):
    webshop = models.CharField(max_length=100)
    title = models.ForeignKey(OrderDashboard, default=None, on_delete=models.SET_DEFAULT)
    order_qty = models.TextField(max_length=10)
    order_date = models.DateField()
    current_status = models.CharField(max_length=100)
    ticket = models.CharField(max_length=200)
    remark = models.TextField()

    class Meta:
        verbose_name_plural = "Scenario"

    def __str__(self):
        return self.webshop

视图.py

def single_slug(request, single_slug):
   report = OrderDashboard.objects.get(single_slug=single_slug)
   return render(request, 'order_dashboard/report.html', {'report': report,
                                                          'OrderScenario': OrderScenario.objects.all})

我只想查看OrderScenario关于Titlein添加的所有场景OrderDashboard

标签: pythondjango-models

解决方案


你应该在这里使用后向关系;如果您slug通过 url 传递,您可以使用:

视图.py

def single_slug(request, slug):  # why you have self as the first argument?
   report = OrderDashboard.objects.get(single_slug=slug)
   return render(request, 'order_dashboard/report.html', {'report': report}                             

报告.html

{{ report.title }}
</p>Order Scenarios:</p>
{% for scenario in report.orderscenario_set.all %}
{{ scenario }}
{% endfor %}

推荐阅读