Список заявок исчезает из боковой панели после нажатия на ссылку в Django

Я работаю над проектом Django, в котором мне нужно отображать список присланных работ в боковой панели. Боковая панель включена в базовый шаблон (main.html), а все остальные шаблоны расширяют этот базовый шаблон. Боковая панель корректно отображает список заявок, когда я перехожу на главную страницу. Однако, когда я щелкаю на определенной заявке в боковой панели, приложение переходит на нужную страницу, но в боковой панели отображается только та заявка, на которую я щелкнул, а все остальные заявки исчезают.

Вот соответствующая часть моей установки:

Models.py:

from django.db import models
from users.models import UserProfile

# Create your models here.
class ResearchWork(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    
    def __str__(self):
        return self.name
    

class Assignment(models.Model):
    student = models.ForeignKey(UserProfile, related_name='student_assignment', on_delete=models.CASCADE)
    teacher = models.ForeignKey(UserProfile, related_name='teacher_assignment', on_delete=models.CASCADE)
    is_accepted = models.BooleanField(default=False) # charfield
    created_at = models.DateTimeField(auto_now_add=True)
    text = models.TextField(blank=True)
    
    
    def __str__(self):
        return f"Assignment for {self.student.user.username} with {self.teacher.user.username}"
    
    
class Submission(models.Model):
    assignment = models.ForeignKey(Assignment, on_delete=models.CASCADE)
    SEMESTER_CHOICES = (
        ('1', 'Semester 1'),
        ('2', 'Semester 2'),
        ('3', 'Semester 3'),
        ('4', 'Semester 4'),
        ('5', 'Semester 5'),
        ('6', 'Semester 6'),
        ('7', 'Semester 7'),
        ('8', 'Semester 8'),
    )
    semester = models.CharField(max_length=100, null=True, choices=SEMESTER_CHOICES)
    research_work = models.ForeignKey(ResearchWork, on_delete=models.CASCADE, null=True)
    created_at = models.DateTimeField(auto_now_add=True, null=True)
    
    
    def __str__(self):
        research_work_name = "No Research Work Assigned" if self.research_work is None else self.research_work.name
        return f"{research_work_name} - for student {self.assignment.student.user.username} in semester - {self.semester}"

Контекстный процессор:

from base.models import Submission

def user_profile_pk(request):
    context = {}
    if request.user.is_authenticated:
        user_profile_pk = request.user.userprofile.pk
        context['user_profile_pk'] = user_profile_pk
        
        student = request.user.userprofile
        submissions = Submission.objects.filter(assignment__student=student)
        context['submissions'] = submissions
    else:
        context['user_profile_pk'] = None
        context['submissions'] = None
    print(f"Submissions for {student}: {submissions}")
    return context

Настройки:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            BASE_DIR / 'templates'
            ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'users.context_processors.user_profile_pk',
            ],
        },
    },
]

Часть моего шаблона, где я зацикливаю все представления от модели:

{% for submission in submissions %}
        <li class="nav-item">
          <a
            class="nav-link"
            href="{% url 'research-work-detail' rw_id=submission.research_work.id semester=submission.semester subm_id=submission.id %}"
            ><span class="nav-icon"></span>{{submission.research_work.name}} -
            Сем.{{submission.semester}}</a
          >
        </li>

        {% endfor %}

Урлы:

urlpatterns = [
    path('login/', views.loginPage, name='login'),
    path('home/', views.home, name='home'),
    path('student/<str:pk>/', views.student_home, name='student-home'),
    path('research-work/<int:rw_id>/<str:semester>/<int:subm_id>/', views.research_work_detail, name='research-work-detail'),
    path('topics/<int:rw_id>/<int:topic_id>/<int:subm_id>/', views.upload_page, name='upload-page'),
    path('upload-file/<int:subm_id>/<int:topic_id>/', views.upload_file, name='upload-file'),
    path('choose-teacher/<int:student_id>/', views.choose_teacher, name='choose-teacher'),
]
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

views.research_work_detail:

def research_work_detail(request, rw_id, semester, subm_id):
    research_work = get_object_or_404(ResearchWork, pk=rw_id)
    submissions = Submission.objects.filter(research_work=research_work, semester=semester)
    submission = get_object_or_404(Submission, pk=subm_id)
    topics = Topic.objects.filter(research_work=research_work)
    context =   {'research_work': research_work, 'submissions':submissions, 'topics': topics, 'submission_id':submission.id }
    return render(request, 'users/topics.html', context=context)

Почему после перехода на страницу конкретной заявки в боковой панели отображается только та заявка, на которую нажали, и как это исправить, чтобы постоянно отображались все заявки?

Любая помощь будет очень признательна!

Вернуться на верх