Джанго получает субобъекты в поле зрения - PullRequest
0 голосов
/ 19 октября 2019

Две мои модели:

class BusinessType(models.Model):
    def __str__(self):
        return self.name

    name = models.CharField(max_length=200)
    description = models.CharField(max_length=200)

class Business(models.Model):
    def __str__(self):
        return self.name

    name = models.CharField(max_length=200)
    description = models.CharField(max_length=200)
    bus_type = models.ForeignKey(BusinessType, on_delete=models.CASCADE, name="type")

class Appointment(models.Model):
    from datetime import datetime

    business = models.ForeignKey(Business, on_delete=models.CASCADE, name="appointments")
    done = False

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

Теперь я добавляю этот контекст в мое представление:

'business':Business.objects.order_by('name'),

Мой шаблон:

{{business|length}}<hr />
    {%for business_entry in business%}
        {{business_entry.appointments.all|length}}
    {%endfor%}

Теперь длина бизнесавыводит «2», и это правильно, у меня есть два бизнес-объекта.

Но для встреч я получаю значение «0», которое не соответствует действительности.

Что я делаю неправильно?

1 Ответ

1 голос
/ 19 октября 2019

Это должно быть related_name="appointments", а не name="appointments".

Итак, измените:

business = models.ForeignKey(Business, on_delete=models.CASCADE, name="appointments")

На:

business = models.ForeignKey(Business, on_delete=models.CASCADE, related_name="appointments")

Вы можетехочу прочитать: ForeignKey.related_name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...