Создание формы с кнопкой обновления и удаления в Django - PullRequest
0 голосов
/ 30 октября 2018

Текущая форма обновляется соответствующим образом, но кнопка удаления выполняет те же действия, что и кнопка обновления.

Я бы хотел, чтобы кнопка удаления удаляла выбранное значение из базы данных. Я попытался присвоить значения кнопке, а также заменить кнопку на тег «a».

Это страница обновления сотрудника:

<h5>Edit Work Record</h5>
    <div class="divider"></div>
    <div class="divider"></div>
    <form method="post" action="{% url 'employd:workrecordupdate' view.object.pk %}">
        <div class="row">
            {% csrf_token %}
            {{ form | materializecss:'s6' }}
            <div class="col s6 left-align">
                <button type="submit" class="waves-effect waves-yellow green lighten-2 btn-small">
                    <i class="material-icons left">save</i>update
                </button>
            </div>
            <div class="col s6 right-align">
                    <!-- <a class="waves-effect waves-darken btn-small red" href="delete">delete</a> -->
                <button type="submit" value="delete" class="waves-effect waves-darken btn-small red">
                    <i class="material-icons left">delete</i>delete
                </button>
            </div>
        </div>
    </form>

Это соответствует следующим ссылкам из моего urls.py:

# ex: /employd/wr/12 -- Update a WorkRecord
path('wr/<int:pk>/', views.WorkRecordUpdateView.as_view(),
     name='workrecordupdate'),
# ex: /employd/wr/create -- Create a new WorkRecord
path('wr/create', views.WorkRecordCreate.as_view(), name='workrecordcreate'),
# ex: /employd/wr/delete -- Delete an existing WorkRecord
path('wr/<int:pk>/delete', views.WorkRecordDelete.as_view(),
     name='workrecorddelete'),

Они указывают на следующие виды:

class WorkRecordUpdateView(SuccessMessageMixin, generic.UpdateView):
""" Display WorkRecord update form, for use inside a modal """
model = WorkRecord
fields = '__all__'
template_name_suffix = '_update'
success_message = "Update successful."

def get_success_url(self):
    return self.request.META.get('HTTP_REFERER')

и

class WorkRecordDelete(SuccessMessageMixin, generic.DeleteView):
""" Deletes a WorkRecord, with confirmation """
model = WorkRecord
template_name = '_delete_confirm.html'

def get_success_message(self, cleaned_data):
    return "Work Record \"%s\" was successfully deleted." % self.object

def get_success_url(self):
    return self.request.META.get('HTTP_REFERER')

1 Ответ

0 голосов
/ 30 октября 2018

Ваша кнопка находится внутри тега формы, поэтому она интерпретируется как часть формы. Поместите кнопку удаления за пределы формы и оберните ее тегом с шаблоном URL для вашего вида удаления.

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