Я пытаюсь использовать функцию get_absolute_url в одном из моих шаблонов, например:
template.html
<div class="card-columns">
{% for category in main_categories %}
<div onclick="document.location = {{ category.get_absolute_url }};" class="card">
Я довольно новичок в программированиив общем, поэтому я не уверен, что это правильный способ сделать это, но я смог заставить его возвращать пару представлений по отдельности, используя такие выражения if:
модели. py
def get_absolute_url(self):
if self.pk == 1:
return reverse('forum:index')
if self.pk == 2:
return reverse('tutorials:cybertips')
return reverse('tutorials:subjects', args=[str(self.pk)])
Я не получаю никаких ошибок, и при нажатии на карточки с pk = 1 & pk = 2 он возвращает правильный шаблон URL. Другие карты загружаются нормально, но не ссылаются ни на что. При проверке html похоже, что он возвращает URL, поэтому мне интересно, не понимаю ли я функцию onclick? Вот мои URL (в этом приложении):
urls.py
app_name = 'tutorials'
url_patterns = [
path('category/<int:pk>/', views.SubjectView.as_view(), name='subjects'),
path('cybertips/', views.cybertips, name='cybertips'),
]
views.py
class MainCategoriesView(ListView):
model = MainCategory
context_object_name = 'main_categories'
class SubjectView(ListView):
model = Subject
context_object_name = 'subjects'
Любая помощь приветствуется. Или, если есть более эффективный и безопасный способ сделать это. Спасибо.