Как добавить кнопку Удалить в сгенерированную форму django.forms? - PullRequest
5 голосов
/ 02 марта 2011

Как добавить кнопку Удалить в django.forms сгенерированную форму редактирования (примечание, НЕ администратор)?

Очень просто добавить представление удаления (/app/model/<id>/delete/ и т. Д.), Но как добавить кнопку "Удалить" рядом с созданной формой?

Мне не хватает чего-то простого?

Ответы [ 2 ]

17 голосов
/ 02 марта 2011

Добавить кнопку отправки в шаблон, установить имя как «удалить», проверить в своем представлении, если он был нажат:

if request.POST.get('delete'):
    obj.delete()
1 голос
/ 15 февраля 2016

Вы можете использовать такую ​​общую форму, как эта

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()

И тогда вы можете повторно установить флажок, чтобы он выглядел как кнопка. Но вам, наверное, лучше с обычной кнопкой с именем ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...