РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
39 of 818 menu

Метод get_absolute_url

Метод get_absolute_url определяется в модели и возвращает строку с URL-адресом для конкретного экземпляра. Этот метод особенно полезен для генерации ссылок на объекты в шаблонах и административной панели Django. Метод не принимает никаких аргументов и обычно использует функцию reverse для построения URL на основе имени маршрута и параметров объекта.

Синтаксис

from django.db import models from django.urls import reverse class ModelName(models.Model): # поля модели def get_absolute_url(self): return reverse('url_name', kwargs={'pk': self.pk})

Пример

Давайте создадим модель Article с методом get_absolute_url, который возвращает URL для просмотра статьи:

from django.db import models from django.urls import reverse class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def get_absolute_url(self): return reverse('article_detail', kwargs={'pk': self.pk})

Пример

Рассмотрим использование метода get_absolute_url для получения URL конкретной статьи:

from myapp.models import Article # Получаем статью с id=1 article = Article.objects.get(pk=1) # Получаем абсолютный URL url = article.get_absolute_url() print(url)

Результат выполнения кода:

"/articles/1/"

Пример

Метод get_absolute_url часто используется в шаблонах для создания ссылок на объекты. Рассмотрим пример с использованием альтернативных полей для построения URL:

from django.db import models from django.urls import reverse class Category(models.Model): name = models.CharField(max_length=100) slug = models.SlugField(unique=True) def get_absolute_url(self): return reverse('category_detail', kwargs={'slug': self.slug})

Теперь получим URL для категории:

from myapp.models import Category # Получаем категорию category = Category.objects.get(slug='django') # Получаем абсолютный URL url = category.get_absolute_url() print(url)

Результат выполнения кода:

"/categories/django/"

Смотрите также

  • метод save,
    который сохраняет объект в базу данных
  • метод delete,
    который удаляет объект из базы данных
  • метод clean,
    который выполняет валидацию полей модели
  • метод refresh_from_db,
    который обновляет объект из базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить