//barrabarra

JAVIER ROMERO
Programación web y escritorio
 

Django: Comprobar en un método clean si se actualiza o se añade un objeto

noviembre 19, 2010 at 2:19 pm | Blog, Programación | No comment

 

Esto me ha costado meses descubrirlo.

Desde los primeros días que empecé a programar en Django me encontré con que no tenía un modo simple de comprobar que sólo existiese un objeto, podía comprobar que el count de un queryset fuera < 1, pero cuando iba a actualizarlo plaf, no podía porque efectivamente ya existía un objeto.

La solución está en usar la propiedad initial, que nos devuelve un diccionario con el contenido anterior si es que se va a actualizar el objeto, o un diccionario vacío en caso contrario, con lo que ya se puede diferenciar una situación de la otra.


class CategoryAdminForm(forms.ModelForm):



"""

Formulario para comprobar que no se intentan guardar dos categorías en el mismo nivel/con mismo padre

"""



def clean_slug(self):

    if not self.initial:

        raise forms.ValidationError(_(u'Ya existe uno'))

        return data



<< Volver al Blog Comentar la entrada

 
No hay comentarios en “Django: Comprobar en un método clean si se actualiza o se añade un objeto”
Deja tu comentario

Categorias:

Archivo: