Django чтение данных с 2 моделей с помощью внешнего ключа и составление единого списка - PullRequest
0 голосов
/ 07 марта 2020

Я новичок в django. Я кодировал с sql, но django orm мне трудно преобразовать мои знания о sql в модели orm. У меня есть модель клиента

class client(models.Model):
     c_id = models.AutoField(primary_key=True)
     name= models.TextField()
     age=models.IntegerField()

и модель адреса

class address(models.Model):
     c_id = models.ForeignKey(client, on_delete=models.CASCADE)
     addr = models.CharField(max_lenght=20)
     city= models.CharField(max_lenght=20)

Это моя таблица

 ---------------------------
|   c_id|Name        | age |
 ---------------------------
|     1 | John       | 23  |
----------------------------
|     2 | Rose       | 20  |
----------------------------

------------------------------
|   c_id|addr       | city   |
------------------------------
|     1 | buspark   | florida|
------------------------------
|     2 | homesquare| florida|
------------------------------ 

как получить allclient с адресом в списке

1 Ответ

1 голос
/ 07 марта 2020

Посмотрите на values ​​() документы

Метод values ​​() принимает необязательные позиционные аргументы, * поля, которые определяют имена полей, которыми должен ограничиваться SELECT. Если вы укажете поля, каждый словарь будет содержать только ключи / значения полей для указанных вами полей. Если вы не укажете поля, каждый словарь будет содержать ключ и значение для каждого поля в таблице базы данных.

__ позволяет получить связанные данные, поэтому в вашем случае это может выглядеть так это

address.objects.values('c_id__c_id', 'c_id__name', 'c_id__age', 'addr', 'city')
...