Использование операторов HTML if для возврата результатов
Я пытаюсь вывести список курсов, которые пользователь загрузил в свой аккаунт, но не могу понять, как это сделать. Я пытался вывести {{курс.студент_курс }} и {{имя пользователя}}, и оба они выводят одно и то же. Но когда я выполняю сравнение в операторе if, ничего не возвращается.
Вот html-фрагмент
<div class="container h-100">
<div class="row justify-content-center">
{% if courses_list %}
{% for course in courses_list %}
{% if course.student_course == user.username %}
<button type="button" class="btn btn-outline-primary">{{ subject }} </button>
<p>{{ subject }}</p>
{% endif %}
{% endfor %}
{% else %}
<p>No courses have been uploaded.</p>
{% endif %}
</div>
</div>
А вот поля моей модели, к которым я пытаюсь получить доступ.
class Course(models.Model):
subject = models.CharField(max_length=4)
course_number = models.CharField(max_length=4, default='')
course_name = models.CharField(max_length=100, default='')
course_section = models.CharField(max_length=3, default='')
student_course = models.OneToOneField(User, on_delete=models.CASCADE, default='')
def __str__(self):
return self.subject + " " + self.course_number
Как я уже сказал, я попытался вывести каждое сравниваемое поле, и они оба получились одинаковыми, но когда я пытаюсь выполнить сравнение, оно ничего не возвращает.
course.student_course является экземпляром User
user.username - строка имени пользователя экземпляра User
Поэтому вы хотите использовать {% if course.student_course == user %} или {% if course.student_course.username == user.username %}