๐Ÿ“ Django

SuccessMessageMixin in Django

P
Author
PyLand Team
๐Ÿ“…
Published
30.06.2026
โฑ๏ธ
Reading time
1 min
๐Ÿ‘๏ธ
Views
256
๐ŸŒฟ
Level
Medium

SuccessMessageMixin is a mixin for displaying a flash message after a form is successfully submitted in a class-based view.

Installation

No installation required โ€” it is built into Django:

from django.contrib.messages.views import SuccessMessageMixin

Basic Usage

from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy
from .models import Task

class TaskCreateView(SuccessMessageMixin, CreateView):
    model = Task
    fields = ['title', 'description', 'priority']
    success_url = reverse_lazy('task-list')
    success_message = 'Task "%(title)s" was created successfully!'

class TaskUpdateView(SuccessMessageMixin, UpdateView):
    model = Task
    fields = ['title', 'description', 'priority', 'status']
    success_url = reverse_lazy('task-list')
    success_message = 'Task updated!'

Dynamic Message

class TaskCreateView(SuccessMessageMixin, CreateView):
    model = Task
    fields = ['title']
    success_url = reverse_lazy('task-list')

    def get_success_message(self, cleaned_data):
        return f'Task "{self.object.title}" was created and assigned to you!'

Displaying in a Template

{% if messages %}
  {% for message in messages %}
    <div class="alert alert-{{ message.tags }}">
      {{ message }}
    </div>
  {% endfor %}
{% endif %}

Inheritance Order

# Correct: SuccessMessageMixin BEFORE the base class
class TaskCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
    ...

# Incorrect
class TaskCreateView(CreateView, SuccessMessageMixin):  # will not work
    ...

Equivalent for Function-Based Views

from django.contrib import messages

def task_create(request):
    if form.is_valid():
        task = form.save()
        messages.success(request, f'Task "{task.title}" created!')
        return redirect('task-list')

Your reaction to the article

๐Ÿ’ฌ Comments (0)

๐Ÿ” Sign in to leave a comment
๐Ÿšช Login
๐Ÿ’ญ

No comments yet

Be the first to share your opinion about this article!

๐Ÿ”— Similar

Similar articles

Continue learning with these materials

๐Ÿ“

Search in Django

You can start with simple Django ORM filters and move to PostgreSQL features when you...

๐Ÿ“… 30.06.2026 ๐Ÿ‘๏ธ 279
๐Ÿ“

Swagger Documentation with drf-spectacular

drf-spectacular generates an OpenAPI 3.0 schema and Swagger UI for DRF.

๐Ÿ“… 30.06.2026 ๐Ÿ‘๏ธ 563
๐Ÿ“

settings.py: Django Configuration

settings.py is the central configuration file for a Django project.

๐Ÿ“… 30.06.2026 ๐Ÿ‘๏ธ 315

Did you like the article?

Subscribe to our updates and be the first to receive new articles. Grow with PyLand!