Django: проблема с get_absolute_url
Я уже некоторое время бьюсь над этой проблемой... У меня есть модель с двумя классами, и в обоих классах есть функция get_absolute_url, но каждый раз, когда я пытаюсь использовать эту функцию, я получаю один и тот же ответ.
models.py
from django.db import models
from django.contrib.auth import get_user_model
from django.urls import reverse
# Create your models here.
class Listing(models.Model):
info = models.CharField(max_length = 200)
def __str__(self):
return self.info
def get_absolute_url(self):
return reverse('listing_detail', args = [str(self.id)])
class Application(models.Model):
listing = models.ForeignKey(
Listing,
on_delete = models.CASCADE,
related_name = 'applications',
)
comment = models.TextField(max_length = 2500)
def __str__(self):
return self.comment
def get_absolute_url(self):
return reverse('applications', args = [str(self.id)])
urls.py
from django.urls import path
from .views import ListingListView, ListingDetailView, ListingApplicationView
urlpatterns = [
path('', ListingListView.as_view(), name = 'listing_list'),
path('<int:pk>/', ListingDetailView.as_view(), name = 'listing_detail'),
path('<int:pk>/applications/', ListingApplicationView.as_view(), name = 'applications')
]
views.py
from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Listing, Application
# Create your views here.
class ListingListView(ListView):
model = Listing
template_name = 'listing/listing_list.html'
context_object_name = 'listing_list'
class ListingDetailView(DetailView):
model = Listing
template_name = 'listing/listing_detail.html'
context_object_name = 'listing_detail'
class ListingApplicationView(ListView):
model = Application
template_name = 'listing/applications.html'
context_object_name = 'applications'
templates
<h2><a href="{{ listing.get_absolute_url }}">{{ listing.address1 }}</a></h2>
<p><a href = "{{ applications.get_absolute_url }}">Applications</a></p>
Независимо от того, нажимаю ли я на первую строку HTML выше или на вторую, мой ответ консоли таков:
"GET /listing/1/ HTTP/1.1"
Я очень ценю помощь здесь! Я уже несколько часов бьюсь с функцией get_absolute_url и думаю, что делаю все правильно, но, очевидно, что-то упускаю.
Спасибо!