Django 外键在详细视图中显示值

Django foreign key display values in detail view

我有一个主数据库 table Radni_nalozi(工作订单),我通过外键将 Stavke(项目)附加到该数据库。 当我查看有关特定工单的详细信息时,我还想显示通过外键连接到该工单的所有项目。

我尝试了很多不同的方法,但似乎我自己无法弄清楚。 我附上下面的代码。在 HTML 模板中,我只能获取有关特定工作订单的详细信息,但不能获取项目的详细信息。

get_context_data 添加到您的详细视图以获取对象并获取与该对象相关的所有项目。基本上,此方法替换了 DetailView 提供的默认 context,因此您还必须包括对象本身。

class RadniDetailView(DetailView):

    # ..... remain code ......

    def get_context_data(self):
        context = super(RadniDetailView, self).get_context_data()
        radni_obj = self.object # this contain the object that the view is operating upon
        context['object'] = radni_obj # don't forget this also

        # Get all items/Stavke related to the work order/Radni_nalozi
        context['items'] = Stavke.objects.filter(Rn=radni_obj)
        return context

在 HTML 中,您可以像这样显示所有项目

{% for item in items %}
   {{ item }}
{% endfor %}
  1. 如果您在 django 中使用 ForeignKey,您可以使用“related_name”访问与一行相关的所有行 parameter.To 获取所有连接的项目通过外键到该工单(id=1)。

    radni_nalozi_obj = Radni_nalozi.objects.get(id=1)
    radni_nalozi_obj.stavka       //we are using related_name that is mentioned in "Stavke" model for "Artikl" foreignkkey.
    
  2. 在您的详细视图中,您可能必须在返回之前修改上下文对象。