LINUX.ORG.RU

Связанные поля Django ORM

 , , , ,


0

1

Приветствую. Есть вопрос: есть 2 таблицы Company и Services.

class Company(models.Model):
    name = models.CharField(max_length=100, blank=False, verbose_name='Название компании')
    # balance = models.CharField(max_length=100, blank=True, null=True, verbose_name='Баланс')
    status = models.BooleanField(verbose_name='Статус')
    address = models.CharField(max_length=200, blank=True, null=True)
    date = models.DateTimeField(auto_now_add=True, blank=True, verbose_name='Дата создания')
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

    def __str__(self):
        return self.name


class Services(models.Model):
    name = models.CharField(max_length=30, verbose_name='Имя Сервиса')
    balance = models.FloatField(verbose_name="Баланс")
    start_at = models.DateTimeField(null=True, blank=True, verbose_name="Дата создания")
    finished_at = models.DateTimeField(null=True, blank=True, verbose_name="Дата окончания")
    company_starter = models.ForeignKey('Company', on_delete=models.CASCADE)

    def __str__(self):
        return self.name

Собственно вопрос как сделать запрос так, что б получить вместь id поля его значение.

Data = Services.objects.first()
#name balance start_at finished_at company_starter 
# Пример вывода > a,12,date,date, 1

Хочу получить # Пример вывода

Services.name, Services.balance, Services.start_at, Services.finished_at, Services.company_starter , company.name, company.status, company.address, company.date, company.user


В поле company_starter хранится только ссылка на объект БД. При обращении к полю идёт ленивое вычисление и запрос в базу. Ну или можно попробовать использовать объект Q и сформировать сложный запрос, дающий ответ сразу с JOIN'ом.

dunmaksim
()
Ответ на: комментарий от dunmaksim

вообще все намного проще, у него есть встроенный функционал для этого

q13
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.