Django - Остановить перезагрузку страницы после GET-запроса
Я хотел бы показывать все оценки одного пользователя по нажатию кнопки. Теперь я хочу интегрировать расширяемую кнопку из Bootstrap. GET-запрос работает отлично, но JavaScript для расширяемой кнопки срабатывает при нажатии на кнопку, а затем страница перезагружается. Это означает, что кнопка возвращается в исходное состояние. Возможно, у вас есть способ исправить это?
noten.html
{% if subject_list %}
<form name="subject-list" method="GET">
<ul>
{% for subject in subject_list %}
<p>
<button class="btn btn-primary" type="submit" data-bs-toggle="collapse" data-bs-target="#{{ subject }}" aria-expanded="false" aria-controls="collapseExample" value="{{ subject }}" id="{{ subject }}" name="subject">
{{ subject }}
</button>
</p>
<div class="collapse" id="{{ subject }}">
<div class="card card-body">
{% if grades %}
{% for grade in grades %}
<li>{{ grade }}</li>
{% endfor %}
{% else %}
<p>Du hast keine Noten in diesem Fach!</p>
{% endif %}
</div>
</div>
{% endfor %}
</ul>
</form>
{% endif %}
views.py
def noten(request):
if request.user.is_authenticated: # if user is logged in
object_list = Subject.objects.order_by('name')
subject_list = []
for subject in object_list:
subject_list.append(subject.name)
if request.method == 'GET':
subject = request.GET.get('subject', '')
if subject != '':
print(f"GET {subject}")
grades = Test.get_grades(student=request.user.id, subject=subject, self=Test)
return render(request, 'noten.html', {'subject_list': subject_list, 'grades': grades})
else:
return render(request, 'noten.html', {'subject_list': subject_list})
else:
return render(request, 'noten.html', {'subject_list': subject_list})
else: # else redirect to login page
return redirect('loginForm:login')