day24 stark组件开发之编辑和删除功能实现
编辑功能实现
基类中编辑函数逻辑如下
def change_view(self, request, pk):
"""
编辑页面
:param request:
:param pk:
:return:
"""
current_change_object = self.model_class.objects.filter(pk=pk).first()
if not current_change_object:
return HttpResponse('要修改的数据不存在,请重新选择!')
model_form_class = self.get_model_form_class()
if request.method == 'GET':
form = model_form_class(instance=current_change_object)
return render(request, 'stark/change.html', {'form': form})
form = model_form_class(data=request.POST, instance=current_change_object)
if form.is_valid():
self.save(form, is_update=False)
# 在数据库保存成功后,跳转回列表页面(携带原来的参数)。
return redirect(self.reverse_list_url())
return render(request, 'stark/change.html', {'form': form})
删除功能实现
基类中删除功能函数逻辑如下
def delete_view(self, request, pk):
"""
删除页面
:param request:
:param pk:
:return:
"""
# self.models_class
origin_list_url = self.reverse_list_url()
if request.method == 'GET':
return render(request, 'stark/delete.html', {'cancel': origin_list_url})
self.model_class.objects.filter(pk=pk).delete()
return redirect(origin_list_url)
删除模板代码
{% extends 'layout.html' %}
{% block content %}
{% endblock %}