Как показать, что урок выполнен по родственной модели?
У меня есть список уроков и мне нужно выделить сделанные уроки текущим человеком. Я попробовал свой вариант ниже, но он показывает только выполненные уроки.
У меня есть 2 модели: уроки и donelessons, связанные с пользователем, и уроки с foreignkey.
модели
class Lessons(models.Model):
theory = models.TextField(blank=True)
words = models.TextField(blank=True)
question1 = models.CharField(max_length=255)
answer1 = models.CharField(max_length=255)
class DoneLessonsModel(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
lessons = models.ForeignKey(Lessons, on_delete=models.CASCADE, null=True,
related_name="releases")
done = models.BooleanField(default=False)
просмотров
class News(ListView):
model = Lessons
template_name = 'static/news.html'
context_object_name = 'posts'
def get_queryset(self):
return Lessons.objects.all().prefetch_related(
Prefetch('releases', queryset=DoneLessonsModel.objects.filter(user=self.request.user))).all()
html
...
{% for p in posts %}
{% for release in p.releases.all %}
<div class="col-md-3 mt-3">
<div class="card mb-4 box-shadow
{% if release.done == True %}
bg-success text-white btn-outline-light
{% else %}
border-dark
{% endif %} ">
<div class="card-body">
<p class="card-text">Lesson №{{ p.pk }}</p>
<div class="d-flex justify-content-between align-items-center">
<div class="btn-group">
<a href="{% url 'theory' p.pk %}" >
<button type="button" class="btn btn-sm
{% if release.done == True %}
btn-outline-light
{% else %}
btn-outline-dark
{% endif %} ">Start</button>
</a>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
...