Validation personnalisée dans Django admin

J'ai une question très simple Django app pour enregistrer les conférences donné à mes collègues.Depuis qu'il est tout à fait élémentaires,je suis à l'aide de l'admin de Django lui-même. Voici mon models.py:

#models.py
from django.db import models

class Lecture(models.Model):
    topic = models.CharField(max_length=100)
    speaker = models.CharField(max_length=100)
    start_date = models.DateField()
    end_date = models.DateField()

J'ai besoin pour s'assurer que personne n'entre la date de début après la date de fin dans l'admin formes,j'ai donc lu le django documents pour la validation personnalisée dans l'admin et mis en œuvre le suivant dans mon admin.py:

#admin.py
from models import Lecture
from django.contrib import admin
from django import forms


class LectureForm(forms.ModelForm):
    class Meta:
        model = Lecture

        def clean(self):
            start_date = self.cleaned_data.get('start_date')
            end_date = self.cleaned_data.get('end_date')
            if start_date > end_date:
                raise forms.ValidationError("Dates are incorrect")
        return self.cleaned_data


class LectureAdmin(admin.ModelAdmin):
    form = LectureForm
    list_display = ('topic', 'speaker', 'start_date', 'end_date')

admin.site.register(Lecture, LectureAdmin)

Toutefois,cela n'a aucun effet sur mon admin et je suis en mesure d'enregistrer des conférences où date_debut est après end_date comme on le voit dans l'image:Validation personnalisée dans Django admin

Ce que je fais mal ??

InformationsquelleAutor Amistad | 2014-07-17