Я пытаюсь получить все значения в текущей таблице, а также получить некоторые поля в связанных таблицах.
class school(models.Model):
school_name = models.CharField(max_length=256)
school_type = models.CharField(max_length=128)
school_address = models.CharField(max_length=256)
class hometown(models.Model):
hometown_name = models.CharField(max_length=32)
class person(models.Model):
person_name = models.CharField(max_length=128)
person_id = models.CharField(max_length=128)
person_school = models.ForeignKey(school, on_delete=models.CASCADE)
person_ht = models.ForeignKey(hometown, on_delete=models.CASCADE)
как быстро выделить всю необходимую информацию в поле для рендеринга.
будет много записей лично, я получу входные данные school_id и хочу, чтобы все люди в этой школе, а также хотели, чтобы отображалось имя_домена этого человека.
Я пытался вот так, могу получить информацию, которую хотел. И любой другой быстрый способ сделать это?
m=person.objects.filter(person_school_id=1)
.values('id', 'person_name', 'person_id',
school_name=F('person_school__school_name'),
school_address=F('person_school__school_address'),
hometown_name=F('person_ht__hometown_name'))
person_name, person_id, school_name, school_address, имя_домена
если у человека много полей, список всех значений будет тяжелой.
что я имею в виду, может ли любой набор запросов объединить поля связанных таблиц, которым нет необходимости перечислять поля в значениях.
Может быть так:
m=person.objects.filter(person_school_id=1).XXXX.values()
он может показывать все значения в школе, и все значения в родном городе вместе со значениями человека в м, и я могу
for x in m:
print(x.school_name, x.hometown_name, x.person_name)