Как отобразить что-то из базы данных после удовлетворения нескольких критериев в django

Здесь у меня есть модель рекомендателей:

class Recommenders(models.Model):
    objects = None
    Subject = models.ForeignKey(SendApproval, on_delete=models.CASCADE, null=True)
    Recommender = models.CharField(max_length=20, null=True)
    Status = models.CharField(null=True, max_length=8, default="Pending")
    Time = models.DateTimeField(auto_now_add=True)

Еще одна модель Подходит:

class Approvers(models.Model):
    objects = None
    Subject = models.ForeignKey(SendApproval, on_delete=models.CASCADE, null=True)
    Approver = models.CharField(max_length=20, null=True)
    Status = models.CharField(null=True, max_length=8, default="Pending")
    Time = models.DateTimeField(auto_now_add=True)

А моя модель SendApproval выглядит так:

class SendApproval(models.Model):
    Subject = models.CharField(max_length=256)
    Date = models.DateField(null=True)
    Attachment = models.FileField(upload_to=get_file_path)
    SentBy = models.CharField(null=True, max_length=100)
    Status = models.CharField(null= True, max_length=8, default="Pending")

Теперь моя проблема в том, что я должен отобразить тему и вложение из таблицы SendApproval только тогда, когда статус всех рекомендателей в таблице Recommenders, относящихся к этой теме, будет "Approved". Не знаю, как я могу это узнать... Спасибо заранее...

Вообще-то у меня нет идей по поводу решения, но лучший ответ будет оценен по достоинству... Кстати, я новичок на StackOverflow... Поэтому, пожалуйста, дайте мне знать, если в моем вопросе есть какая-то двусмысленность.

Используя первичную модель, вы можете получить связанные с ней данные из вторичной модели. Для этого в первичной модели по умолчанию создается специальное свойство (объект) с именем secondary model_set. В вашем случае, например: recommenders_set. Переменная rec запрашивает данные, в которых присутствует 'Approved'. Далее в цикле записывается список непустых значений модели SendApproval и этот список помещается в контекст шаблона.

На странице отображаются: 'Recommender.id', 'Subject.Status', 'Subject.id'.

Замените bboard на название папки, в которой находятся ваши шаблоны. У меня это: templates/bboard, которые находятся в папке приложения.

views.py

def info(request):
    rec = SendApproval.objects.filter(Status='Approved')
    aaa = []
    for i in rec:
        if len(i.recommenders_set.all()) > 0:
            aaa.append(i.recommenders_set.all())

    return render(request, 'bboard/templ.html', {'context': aaa})

urls.py

urlpatterns = [
    path('info/', info, name='info'),
]

templates

{% for a in context %}
{% for aa in a %}
<p>{{ 'Recommender.id' }} : {{ aa.id }} , {{ 'Subject.Status' }} : {{ aa.Subject.Status }}, {{ 'Subject.id' }} : {{ aa.Subject.id }}</p>
{% endfor %}
{% endfor %}
Вернуться на верх