def table_obj_add(request, app_name,model_name, no_render=False): print("requestpath", request.path) if app_name in site.registered_admins: if model_name in site.registered_admins[app_name]: admin_class = site.registered_admins[app_name][model_name] form = forms.create_dynamic_modelform(admin_class.model, admin_class=admin_class, form_create=True) if request.method == "GET": form_obj = form() elif request.method == "POST": form_obj = form(data=request.POST) if form_obj.is_valid(): form_obj.save() if no_render: redirect_url_list = request.path.split('/') redirect_url = '/'.join(redirect_url_list[1:4]) redirect_url = '/' + redirect_url + '/' print(redirect_url) return redirect_url else: return redirect(request.path.rstrip("add/")) if no_render: # 被其它函数调用,只返回数据 return locals() else: return render(request, 'luffyadmin/table_object_add.html', locals())
def table_obj_change(request,app_name,model_name,object_id): if app_name in site.registered_admins: if model_name in site.registered_admins[app_name]: admin_class = site.registered_admins[app_name][model_name] object = admin_class.model.objects.get(id=object_id) form = forms.create_dynamic_modelform(admin_class.model) if request.method == "GET": form_obj = form(instance=object) elif request.method == "POST": form_obj = form(instance=object,data=request.POST) if form_obj.is_valid(): form_obj.save() return render(request,'luffyadmin/table_object_change.html',locals())
def table_obj_add(request,app_name,model_name): print("requestpath", request.path) if app_name in site.registered_admins: if model_name in site.registered_admins[app_name]: admin_class = site.registered_admins[app_name][model_name] form = forms.create_dynamic_modelform(admin_class.model) if request.method == "GET": form_obj = form() elif request.method == "POST": form_obj = form(data=request.POST) if form_obj.is_valid(): form_obj.save() return redirect(request.path.rstrip("add/")) return render(request, 'luffyadmin/table_object_add.html', locals())
def table_obj_add(request, app_name, model_name): if app_name in site.registered_admins: # 再如果表在这个内层字典中 {'crm':{'customer':admin_class}} if model_name in site.registered_admins[app_name]: # 获取到admin_class (这就是管理类, 同时表也存在属性里admin_class.model) admin_class = site.registered_admins[app_name][model_name] # 动态类,实例化 form = forms.create_dynamic_modelform(admin_class.model) if request.method == 'GET': form_obj = form() elif request.method == 'POST': form_obj = form(data=request.POST) if form_obj.is_valid(): form_obj.save() return redirect(request.path.rstrip('add/')) return render(request, 'luffyadmin/table_object_add.html', locals())
def table_obj_change(request, app_name, model_name, object_id): # 如果crm在这个字典中 if app_name in site.registered_admins: # 再如果表在这个内层字典中 {'crm':{'customer':admin_class}} if model_name in site.registered_admins[app_name]: # 获取到admin_class (这就是管理类, 同时表也存在属性里admin_class.model) admin_class = site.registered_admins[app_name][model_name] # 去表中获取数据,通过ID data_obj = admin_class.model.objects.get(id=object_id) # 动态类,实例化 form = forms.create_dynamic_modelform(admin_class.model) if request.method == 'GET': # 将数据放入这个实例中, 将form_obj返回给前端. form_obj = form(instance=data_obj) elif request.method == 'POST': form_obj = form(instance=data_obj, data=request.POST) if form_obj.is_valid(): form_obj.save() return render(request, 'luffyadmin/table_object_change.html', locals())
def table_obj_change(request, app_name, model_name, object_id, no_render=False): """ from luffyAdmin import forms from app import models obj = models.Customer.objects.get(id=object_id) form = forms.CustomerForm(instance=obj) """ if app_name in site.registered_admins: if model_name in site.registered_admins[app_name]: admin_class = site.registered_admins[app_name][model_name] object = admin_class.model.objects.get(id=object_id) form = forms.create_dynamic_modelform(admin_class.model, admin_class=admin_class, form_create=False) if request.method == "GET": form_obj = form(instance=object) elif request.method == "POST": form_obj = form(instance=object, data=request.POST) if form_obj.is_valid(): form_obj.save() if no_render: # 被其它函数调用,只返回数据 return locals() else: return render(request, 'luffyadmin/table_object_change.html', locals())