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
Include Other URLconfs
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.