Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
# blog/converters.py — custom path converter class FourDigitYearConverter: regex = '[0-9]{4}' def to_python(self, value): return int(value) def to_url(self, value): return f'{value:04d}' # blog/urls.py — register and use custom converter from django.urls import path, register_converter from . import converters, views register_converter(converters.FourDigitYearConverter, 'yyyy') urlpatterns = [ path('archive/<yyyy:year>/', views.PostYearArchiveView.as_view(), name='post-year'), ] # Slug-based URLs instead of IDs # blog/models.py from django.db import models from django.utils.text import slugify class Post(models.Model): title = models.CharField(max_length=200) slug = models.SlugField(max_length=200, unique=True, blank=True) def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.title) super().save(*args, **kwargs) def get_absolute_url(self): from django.urls import reverse return reverse('blog:post-detail', kwargs={'slug': self.slug}) # blog/urls.py with slug urlpatterns = [ path('<slug:slug>/', views.PostDetailView.as_view(), name='post-detail'), ]
Result
Open