Как получить данные двух моделей в цикле for с фильтром: Django

У меня есть две модели, как показано ниже, модель данных пациента и модель посещений пациента. Я хочу получить список посещений всех пациентов (если они существуют). В файле views.py я передаю данные обеих моделей через get all. Как отфильтровать и показать их в шаблоне с помощью цикла for. Я использую два цикла for, он показывает общее количество пациентов, умноженное на общее количество посещений, что неверно.

class patientprofile(models.Model):

pat_Fname = models.CharField(max_length=100)
pat_Lname = models.CharField(max_length=100, blank=True)
def IntegerField(self):
    return self.id



class visits(models.Model):
pat_ID = models.ForeignKey(patientprofile, on_delete=models.CASCADE)
visit_date = models.DateField(blank=False, null=False)
visit_time = models.TimeField(blank=False, null=False)

views.py

@login_requireddef visitslist(request):
patpro=patientprofile.objects.all()
vis=visits.objects.all()
return render(request, 'pmp/visitslist.html', {'vis':vis, 'patpro':patpro})

Шаблон как показано ниже

{% for a in vis %}              
                                               
                                            <tr>
                                                <td>
                                                    {{ a.visit_time }}
                                                </td>
                                                <td>{{ a.visit_date }}</td>
                                                <td>{{ patpro.id }}</td>
                                                <td>{{ patpro.pat_Fname }}</td>

                                                </td>
                                            </tr>
                                            {% endfor %}
                                        

Вы можете легко преобразовать его в объект dict, используя функцию values() в объекте queryset. например:

merged_tables_dict = visits.objects.values('visit_date', 'visit_time', 'pat_ID__pat_Fname', 'pat_ID__pat_Lname')

Возвращает список объектов со всеми данными в значениях params

Вы можете прочитать больше об этом Django Docs values

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