1. 程式人生 > >kingadmin後臺(5)、新增頁面開發

kingadmin後臺(5)、新增頁面開發

頁面開發 ado delete btn redirect get valid dir ref

1、路由配置

url(r'^(\w+)/(\w+)/add$', views.add_obj, name='add_obj')

2、視圖函數

def add_obj(request, app_name, model_name):
    """增加新對象  """

    admin_class = site.enable_admins[app_name][model_name]
    dynamic_form = create_model_form(admin_class, add=True)

    if request.method == 'GET':
        form_obj = dynamic_form()
        return render(request, 'kingadmin/add_obj.html', locals())

    elif request.method == 'POST':
        form_obj = dynamic_form(data=request.POST)
        if form_obj.is_valid():
            form_obj.save()
            return redirect('/kingadmin/%s/%s' % (app_name, model_name))
        errors = form_obj.errors
        return render(request, 'kingadmin/add_obj.html', locals())

3、前端頁面

{% extends 'kingadmin/change_info.html' %}

{% block readonly_fields_display %}

{% endblock %}

{% block delete_button %}
{% endblock %}

4、頁面新增按鈕

 <a href="{% url 'add_obj' app_name model_name %}" style="float: right">
    <button type="submit" class="btn btn-default form_btn">ADD {% get_names admin_class %}
    <span class="glyphicon glyphicon-plus"></span></button>
</a>



@register.simple_tag
def get_names(admin_class):
    """獲取表名,有中文則獲取中文顯示"""
    model_class = admin_class.model
    if model_class._meta.verbose_name:
        return model_class._meta.verbose_name
    return model_class._meta.model_name

kingadmin後臺(5)、新增頁面開發