2011-03-01 37 views

Respuesta

15

Agregar un botón de envío a la plantilla, establecer el nombre como 'eliminar', comprobar en su opinión, si se ha hecho clic:

if request.POST.get('delete'): 
    obj.delete() 
+0

Estaba esperando alguna forma de hacerlo automágicamente a través de forms.py Meta: o similar? – Ryan

+2

Las formas de Django no hacen botones. Depende de usted ponerlos en la plantilla. Sin embargo, hay aplicaciones enchufables (django-uni-form) que le permitirán crear formularios con botones en la definición del formulario. – zsquare

1

usted podría utilizar alguna forma genérica como esta

class DeletableModelForm(forms.ModelForm): 
    """ 
    Model form that allows you to delete the object 
    """ 
    delete = forms.BooleanField(
     initial=False, 
     help_text=_('Check this to delete this object') 
    ) 

    def save(self, commit=True): 
     if self.cleaned_data['delete']: 
      return self.instance.delete() 
     return super(DeletableModelForm, self).save() 

Y luego podría cambiar la casilla de verificación para que parezca un botón. Pero es probable que sea mejor con el botón normal con el nombre ...

Cuestiones relacionadas