添加功能在前面的编辑基础上继承,相对来说就简单太多,没有太多的修改。
1. 添加–创建页面
1.1 创建页面路由
1 urlpatterns = [ 2 url(r‘^$‘, views.index, name=‘table_index‘), 3 url(r‘^(\w+)/(\w+)/$‘, views.display_objects, name=‘display_objects‘), 4 url(r‘^(\w+)/(\w+)/(\d+)/edit/$‘, views.table_object_edit,name="table_object_edit"), 5 url(r‘^(\w+)/(\w+)/add/$‘, views.table_object_add,name="table_object_add"),#添加页面的路由 6 ]
1.2 创建页面模板文件
在templates/king_admin/
目录下创建模板文件:table_object_add.html
,并继承编辑文件内容:
1 {% extends ‘king_admin/table_object_edit.html‘ %} 2 3 {% block top %} 4 <div class="panel-heading"> 5 <button class="btn btn-success pull-right" ><a href="{% url ‘king_admin:display_objects‘ app_name table_name %}" style="color: white">返回</a></button> 6 </div> 7 {% endblock %}
上面的块内容包含的是返回键按钮。
1.3 创建页面视图函数
添加功能的视图函数和编辑页面基本上是大同小异:
1 def table_object_add(request, app_name, table_name): 2 admin_class = site.enabled_admins[app_name][table_name] 3 model_form = create_model_form(request, admin_class) 4 5 if request.method == ‘POST‘: 6 form_object = model_form(request.POST) 7 if form_object.is_valid(): 8 form_object.save() 9 return redirect(‘/king_admin/{app_name}/{table_name}‘.format(app_name = app_name, 10 table_name = table_name)) 11 else: 12 form_object = model_form() 13 14 return render(request, ‘king_admin/table_object_add.html‘, {‘admin_class‘: admin_class, 15 ‘form_object‘: form_object, 16 "app_name": app_name, 17 "table_name": table_name})
其中的redirect()
比较关键,添加后返回的url
。