Vieille question, mais vaut au moins un petit exemple car je pense que c'est un problème assez commun.
@Davor Lucic a indiqué la bonne solution. A partir d'aujourd'hui, Django est livré avec un message framework cool qui aide beaucoup dans ce domaine.
Alors, que vous voulez donner un avis dans le Django d'administration chaque fois qu'un objet de voiture au sein de votre modèle de voiture change de propriétaire, vous pourriez faire quelque chose comme ça:
admin.py
from django.contrib import admin
from django.contrib import messages
from .models import Car
@admin.register(Car)
class CarAdmin(admin.ModelAdmin):
list_display = ('owner', 'color', 'status', 'max_speed',)
def save_model(self, request, obj, form, change):
if 'owner' in form.changed_data:
messages.add_message(request, messages.INFO, 'Car has been sold')
super(CarAdmin, self).save_model(request, obj, form, change)
Il est à noter que si vous souhaitez inclure des balises HTML dans votre message, vous devez ajouter:
from django.utils.safestring import mark_safe
qui permettent s vous de faire quelque chose comme:
messages.add_message(request, messages.INFO, mark_safe("Please see <a href='/destination'>here</a> for further details"))
Pas besoin de dire que vous feriez mieux d'être sûr que le code que vous ajoutez est vraiment sûr.
Rien d'exceptionnel, mais peut-être (et j'espère) quelqu'un le trouvera utile.
J'avais un message quand un utilisateur sauvegardait une entrée à l'admin (fond jaune en haut de la page), mais en quelque sorte il a disparu. Comment est-ce que je le récupère? Maintenant, je reçois seulement un message quand un utilisateur a fait une erreur – Timo