Django запрос из нескольких таблиц на основе FK

hi я новичок в кодировании django У меня есть 3 таблицы (модели) в разных приложениях Django, я пытаюсь сделать простой отчет в htmpl странице, поэтому мне нужно получить конкретные данные для каждого элемента на основе внешнего ключа.

С помощью приведенного ниже кода я могу получить данные из таблицы, хранящейся в машине, на странице Html, сделав цикл. но я хочу получить данные из другой таблицы и отфильтровать их,

`{% for m in machines %}

{{m.title}}

{{}}

. //i** нужно получить доступ к полю ordertitle в tb_order на основе id машины. ??**

{{ }}

. // **доступ к ordertitle в tb_order на основе поля status? {%end for %}`

здесь **view.py **

`def allmachinesLOGO(request): machines=Machine.objects.all()

>
context ={'machines':machines}
return render(request,'pline/machineslogos.html',context)`

**Модели : **

class tb_order(models.Model): ordertitle= models.CharField(max_length=200) customer=models.ForeignKey(Customer, null=True, on_delete=models.SET_NULL) mould=models.ForeignKey(Mould, null=True, on_delete=models.SET_NULL, blank=True) status=models.CharField(choices=status_choices, default="0", max_length=20) accept=models.BooleanField machine=models.ForeignKey(Machine,null=True, on_delete=models.SET_NULL, blank=True) id =models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False, unique=True)

class Machine(models.Model): title = models.CharField(max_length=200) machine_model = models.CharField(max_length=200, null=True, blank=True) description = models.CharField(max_length=600, null=True, blank=True) featured_image=models.ImageField(default="defaultmachine.webp", blank=True, null=True) id=models.UUIDField(default=uuid.uuid4, unique=True,primary_key=True,editable=False)

посоветуйте решение получить доступ к полю ordertitle в tb_order на основе поля status ?? //** мне нужно получить доступ к полю ordertitle в tb_order на основе id машины. ??**

Используя первичную модель, вы можете получить связанные с ней данные из вторичной модели. Для этого в первичной модели по умолчанию создается специальное свойство (объект) с именем secondary model_set. В вашем случае, например: tb_order_set(нижний регистр). Используя related_name для ForeignKey (в этом случае он будет таким, каким вы его напишите без префикса _set).

В шаблоне внешний цикл перебирает строки модели: Machine. Внутренний, через tb_order_set.all, обращается к строкам модели tb_order. Хотя, на мой взгляд, лучше все вычисления и сравнения делать в представлениях, а в шаблонах только выводить информацию.

templates

{% for m in machines %}
<p>{{ m.tb_order_set.all }}</p>
{% for r in m.tb_order_set.all %}
<p>{{ 'ordertitle' }} : {{ r.ordertitle }} {{ 'status' }} : {{ r.status }}</p>
{% endfor %}
{% endfor %}
Вернуться на верх