Модели дерева Django, где двое имеют много отношений - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть эти модели, и я хочу выбрать конкретные данные из всех моделей

Пример:

Consultatie.objects.filter (Pacient = 1)

получить данные из Диагностики, относящиеся к этому пациенту

получить данные из Medicamentatie, относящиеся к этому пациенту

class Pacient(models.Model):
  name= models.CharField(max_length=100)

class Medicamentatie(models.Model):
  lista_medicament = models.ForeignKey(ListaMedicamente, on_delete=models.PROTECT, choices='')

class Diagnostic(models.Model):
    lista_boala = models.ForeignKey(ListaBoli, on_delete=models.PROTECT, choices='')
    medicamentatie_diagnostic = models.ManyToManyField(Medicamentatie)

class Consultatie(models.Model):
    pacient = models.ForeignKey(Pacient, on_delete=models.CASCADE, choices='')
    medic = models.ForeignKey(Medic, on_delete=models.PROTECT, choices='')
    diagnostic = models.ManyToManyField(Diagnostic)

1 Ответ

0 голосов
/ 17 апреля 2019

вы можете попробовать сделать что-то вроде этого:

diagnostics_id_list = 
list(set(Consultatie.objects.filter(pacient=1).values_list('diagnostic', 
flat=True)))
diagnostics = Diagnostics.objects.filter(id__in=diagnostics_ids)

С этим вы получите все уникальные диагностические данные для вашего пациента.

Не можете рассказать о Medicamentatie, потому что естьнет модели ListaMedicamente в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...