modele w Django:
class Key(models.Model):
id = models.AutoField(primary_key=True, blank=True)
name = models.CharField(max_length=50)
class Record(models.Model):
id = models.AutoField(primary_key=True, blank=True)
project_id = models.IntegerField()
name = models.CharField(max_length=50)
class Value(models.Model):
id = models.AutoField(primary_key=True, blank=True)
record = models.ForeignKey(Record)
key = models.ForeignKey(Key)
value = models.CharField(max_length=255)
muszę wybrać z DB te dane:
NAME (from record)
and fields related with this record
[NAME (from key), VALUE (from value)]
[NAME (from key), VALUE (from value)]
[...]
mogę użyć Django ORM, aby ten wybór? (na przykład w przypadku wyboru SQL wygląda tak)
SELECT
`keeper_record`.`id` AS `record_id`,
`keeper_record`.`name` AS `name`,
`keeper_record`.`desc` AS `desc`,
`keeper_key`.`name` AS `key_name`,
`keeper_key`.`desc` AS `key_desc`,
`keeper_value`.`value` AS `value_value`
FROM `keeper_record`
JOIN `keeper_value` ON `keeper_record`.`id` = `keeper_value`.`record_id`
JOIN `keeper_key` ON `keeper_key`.`id` = `keeper_value`.`key_id`
WHERE record_id = id
Słusznie zrozumiałem, że dla każdego rekordu potrzebne jest jedno dodatkowe zapytanie, aby wybrać wartości, a jeśli chcę wybrać wszystkie (lub kilka) rekordów, potrzebuję wybranych wartości w pętli? – Deadly
Zaktualizowałem odpowiedź na wybór więcej niż jednego rekordu. Mam nadzieję, że to pomoże. – Alasdair
Tak, naprawdę pomogło mi zrozumieć ORM Django, dziękuję. – Deadly