Models trong 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)
tôi cần phải chọn từ DB dữ liệu này:
NAME (from record)
and fields related with this record
[NAME (from key), VALUE (from value)]
[NAME (from key), VALUE (from value)]
[...]
Tôi có thể sử dụng django ORM để làm cho lựa chọn này? (ví dụ trong SQL chọn giống như thế này)
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
Tôi đã hiểu đúng, rằng đối với mỗi bản ghi cần một truy vấn bổ sung để chọn giá trị, và nếu tôi muốn chọn tất cả (hoặc ít) bản ghi tôi cần chọn giá trị trong một vòng lặp? – Deadly
Tôi đã cập nhật câu trả lời cho việc chọn nhiều hơn một bản ghi. Hy vọng nó giúp. – Alasdair
Vâng, nó thực sự đã giúp tôi hiểu django ORM, cảm ơn. – Deadly