如何在Django模板中显示所有外键属性?

时间:2019-12-15 07:22:51

标签: python django-models

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

models.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

Views.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中与Title相关的所有场景。

1 个答案:

答案 0 :(得分:0)

您应在此处使用后向关系;如果您通过网址传递slug,则可以使用:

views.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}                             

report.html

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