Условия Django get_next_by_date не отображаются должным образом в шаблоне

У меня есть модель под названием "Manga". В этой модели у меня есть объект manytomanyfield под названием chapters с этой моделью.

class Chapter(models.Model):
    chapter=models.IntegerField()
    manga=models.ForeignKey(Manga, null=True, on_delete=models.CASCADE)
    images=models.ManyToManyField(Image, blank=True)
    date= models.DateTimeField()
    def __str__(self):
        return f"{self.manga} Chapter {self.chapter}"
    
    class Meta:
        ordering = ('-date',)

Я получаю главу в представлении с

def chapterview(request, manga_id, chapter_id):
    manga=Manga.objects.get(id=manga_id)
    chapter=Chapter.objects.filter(manga=manga).get(id=chapter_id)
    pages=chapter.images.all()

А следующая и предыдущая главы с:

    try:
        nextchapter=chapter.get_next_by_date
    except Chapter.DoesNotExist:
        nextchapter=None
    try:
        prevchapter=chapter.get_previous_by_date
    except Chapter.DoesNotExist:
        prevchapter=None

Проблема в том, что эти условия шаблона не работают должным образом:

{% if nextchapter and not prevchapter %},
{% elif nextchapter and prevchapter %},
{% else %}

Работает только {% elif nextchapter и prevchapter %}. И поскольку эти условия нужны для того, чтобы кнопки next/previous отображались, я получаю ошибку, потому что следующей главы не существует, но есть кнопка перехода на эту страницу, которую я предварительно нажимаю. Я хочу избавиться от метода get_next_by_date и просто получить следующую главу manytomanyfield. Как я могу этого добиться?

Вам нужно вызвать методы, так:

try:
    nextchapter = chapter.get_next_by_date()
except Chapter.DoesNotExist:
    nextchapter = None
try:
    prevchapter = chapter.get_previous_by_date()
except Chapter.DoesNotExist:
    prevchapter = None
Вернуться на верх