Текущая форма обновляется соответствующим образом, но кнопка удаления выполняет те же действия, что и кнопка обновления.
Я бы хотел, чтобы кнопка удаления удаляла выбранное значение из базы данных. Я попытался присвоить значения кнопке, а также заменить кнопку на тег «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')