Получение неправильной ссылки при попытке вернуться на последнюю страницу

Пытаюсь создать функцию для возврата на последнюю страницу, но slug неверный, и я не могу получить правильный slug.

models.py

class Checklist(models.Model):
    title           = models.CharField(max_length=55)
    slug            = models.SlugField(max_length=500, unique=True, blank=True)
    due_date        = models.DateTimeField()
    check_completed = models.BooleanField(default=False)

    notes           = models.ManyToManyField(Note, blank=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Checklist, self).save(*args, **kwargs)

    def get_url(self):
        return reverse('task_detail', kwargs={
            'slug':self.slug
        })

    def return_url(self):
        return reverse('project_detail', kwargs={
            'slug':self.slug
        })

    def __str__(self):
        return self.title

    @property
    def last_comment(self):
        return self.notes.latest("date")

class Task(models.Model):
    title           = models.CharField(max_length=55, null=True, blank=True)
    slug            = models.SlugField(max_length=500, unique=True, blank=True)
    task_completed  = models.BooleanField(default=False)
    description     = models.TextField(default="Task description")
    start_date      = models.DateTimeField()
    due_date        = models.DateTimeField()

    checklist       = models.ManyToManyField(Checklist, blank=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Task, self).save(*args, **kwargs)

    def __str__(self):
        return self.title

    @property
    def num_checklists(self):
        return self.checklist.count()

    @property
    def num_checklist_completed(self):
        return self.checklist.filter(check_completed = True).count()

class Project(models.Model):
    project_manager = models.ForeignKey(Profile, on_delete=CASCADE)

    title           = models.CharField(max_length=55, null=True, blank=True)
    developers      = models.ManyToManyField(Profile, related_name='projects')
    slug            = models.SlugField(max_length=500, unique=True, blank=True)
    description     = models.TextField(default="Project description")
    date            = models.DateTimeField(auto_now_add=True)
    start_date      = models.DateTimeField()
    due_date        = models.DateTimeField()

    tasks           = models.ManyToManyField(Task, blank=True)
    teams           = models.ManyToManyField(Team, blank=True)
    
    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Project, self).save(*args, **kwargs)

    def get_url(self):
        return reverse('project_detail', kwargs={
            'slug':self.slug
        })

    def __str__(self):
        return self.title

views.py

def teams(request):
    '''
    Display all teams
    '''
    teams   = Team.objects.all()

    context = {
        'teams': teams,
    }

    return render(request, 'projects/teams.html', context)

def projects(request, slug):
    '''
    Display all projects to given team
    '''
    team        = get_object_or_404(Team, slug=slug)
    projects    = Project.objects.filter(teams=team)

    try:
        last_project = Project.objects.latest('date')
    except:
        last_project = []

    context = {
        'projects': projects,
        'team': team,
        'last_project': last_project,
    }

    return render(request, 'projects/projects.html', context)

def project_detail(request, slug):
    '''
    Detailed view of given project
    '''
    project = get_object_or_404(Project, slug=slug)
    tasks   = Task.objects.filter(task_completed=False, project=project)

    context = {
        'tasks': tasks,
        'project': project,
        'title': tasks
    }

    return render(request, 'projects/tasks.html', context)

def task_detail(request, slug):
    '''
    Detailed view of all tasks on given project
    '''
    checklist   = get_object_or_404(Checklist, slug=slug)

    context = {
        'checklist': checklist,
        'title': checklist,
    }

    return render(request, 'projects/checklist.html', context)

В функции "return_url" в чеклисте я пытаюсь вернуться к задаче, которая "владеет" чеклистом. Однако я могу получить только self.slug, slug для контрольного списка, а не для задачи, поэтому в итоге я получаю неправильное перенаправление. Он говорит: projects/task/slug-for-checklist

Должно быть projects/task/slug-for-task

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