Using re_path() for Regex URLs
A snippet showing how to match URLs using re_path().
# models.py
from django.db import models
class SlugThing(models.Model):
slug = models.SlugField(unique=True)
# admin.py
from django.contrib import admin
from .models import SlugThing
@admin.register(SlugThing)
class SlugThingAdmin(admin.ModelAdmin):
list_display = ("slug",)
# urls.py
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r"^tags/(?P[-a-z0-9_]+)/$", views.tag_detail, name="tag-detail"),
]
# views.py
from django.http import HttpResponse
def tag_detail(request, slug):
return HttpResponse(f"Tag = {slug}")
Explanation:
-
Use
re_path()when complex patterns or optional groups are needed. -
Named regex groups become view kwargs (e.g.,
slug).
- Category URLs & Routing
- Total Views 488
- Last Modified 07 April, 2026
- Tags #urls #regex #re_path #routing
Previous snippet
Basic path() Example
Next snippet