Отображение значений внешнего ключа в подробном представлении Django

У меня есть основная таблица БД Radni_nalozi (Заказы на работу), к которой я присоединяю Stavke (предметы) по внешнему ключу. Когда я перехожу к просмотру подробностей о конкретном рабочем заказе, я также хочу отобразить все предметы, которые связаны с этим рабочим заказом по внешнему ключу.

Я пробовал много разных подходов и, кажется, что я просто не могу разобраться в этом самостоятельно. Я прилагаю код ниже. В шаблоне HTML я могу получить только подробную информацию о конкретных рабочих заказах, но не о предметах.

models.py

views.py

template html

Добавьте get_context_data к вашему представлению деталей, чтобы получить объект и получить все элементы, связанные с этим объектом

class RadniDetailView(DetailView):

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

    def get_context_data(self):
        context = super(RadniDetailView, self).get_context_data()
        radni_obj = self.object
        context['object'] = radni_obj

        # 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. Если вы используете ForeignKey в django, вы можете получить доступ ко всем строкам, которые связаны с одной строкой, используя параметр "related_name".Чтобы получить все элементы, которые связаны с этим Work Order(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. В представлении деталей, возможно, придется изменить объект контекста перед возвратом. enter image description here

Вернуться на верх