Django получает объект, только если один из его подобъектов удовлетворяет условию - PullRequest
0 голосов
/ 19 октября 2019

Итак, у меня есть две модели:

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

    name = models.CharField(max_length=200)

class Appointment(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    business = models.ForeignKey(Business, on_delete=models.CASCADE, related_name="appointments")

И, на мой взгляд, у меня есть следующий контекст:

def home(request):
    [...]
    context = {
        'business':Business.objects.order_by('name'),
    }
    [...]

Теперь я бы получил все предприятия с их подмоделями "Назначение".

Но то, что я хочу, это только компании, в которых из существующих подмоделей" Назначение "полностью заполнено author == request.author

Также подмоделями" Назначение "бизнеса должны быть только" Назначения "где их автор равен request.author

1 Ответ

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

Мы можем сделать что-то вроде этого:

business = Business.objects.filter(appointment__author=request.author)

Или:

business = Business.objects.filter(appointment__author__id=request.author.id)

Возможно, вы захотите прочитать: Поиск, который охватывает отношения

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