配置文件view思路(一)

一、配置文件的思路 【配置文件view思路(一)】通过列表保存字典,字典中以键值对的形式保存,我们要用到的内容

  • q用来查询数据库内容,其中value存的是数据库的字段方便以后调用。
  • title 用保存table的标题
  • display 用来控制字段师是否显示
table_config = [ { 'q':'id', 'title':'ID', 'display':False, }, { 'q':'cabinet_num', 'title':'机柜号', 'display':True, 'text': {'content': '{n}-{m}', 'kwargs': {'n': "机柜", 'm': "@cabinet_num"}}, 'attrs':{} }, { 'q':'cabinet_order', 'title':'机柜位置', 'display':True, 'text': {'content':'{m}','kwargs':{'m':"@cabinet_order"}}, 'attrs': {}}, { 'q': 'device_type_id', 'title': '资产类型', 'display': True, 'text': {'content': '{m}', 'kwargs': {'m': "@@device_type_choices"}}, 'attrs':{'edit-enable':'true','edit-type':'select'}}, { 'q': None, 'title': '操作', 'display': True, 'text': {'content': '{n}', 'kwargs': {'n': "查看详情", 'm': "@id"}}, 'attrs': {}},]

  • 通过循环字典将q中的数据库字段,进行保存方便以后直接调用
#如果是none就不保存 for i in table_config: if not i['q']: continue q_list.append(i['q']) from repository importmodels data_list = models.Asset.objects.values(*q_list) data_list = list(data_list)

  • ajax传递的时候用的是字典一定注意
result = { 'table_config':table_config, 'data_list':data_list, #用来保存一个内存的列表储存形式 'global_list':{ 'device_type_choices': models.Asset.device_type_choices, 'device_status_choices':models.Asset.device_status_choices } }

二、整体思路
  • 先页面访问一个框架连接
fromdjango.views import View class AssetView(View): def get(self,request): return render(request,"asset.html")

  • 通过ajax 访问table生成的连接
class AssetJsonView(View): def get(self,request): #创建一个不配置文件 #q用来查询数据库内容,进行操作是用None做不存在判断 #title 用来生成表格表头 #display 用来判断数据是否显示,一般自增id是隐藏的 #text 页面显示文本{'concnet':'{n}','kwargs':{'n':"机柜"}} 吧n的地方替换成机柜{n}.format({'n',wang}) table_config = [ { 'q':'id', 'title':'ID', 'display':False, }, { 'q':'cabinet_num', 'title':'机柜号', 'display':True, 'text': {'content': '{n}-{m}', 'kwargs': {'n': "机柜", 'm': "@cabinet_num"}}, 'attrs':{} }, { 'q':'cabinet_order', 'title':'机柜位置', 'display':True, 'text': {'content':'{m}','kwargs':{'m':"@cabinet_order"}}, 'attrs': {}}, { 'q': 'device_type_id', 'title': '资产类型', 'display': True, 'text': {'content': '{m}', 'kwargs': {'m': "@@device_type_choices"}}, 'attrs':{'edit-enable':'true','edit-type':'select'}}, { 'q': None, 'title': '操作', 'display': True, 'text': {'content': '{n}', 'kwargs': {'n': "查看详情", 'm': "@id"}}, 'attrs': {}},] q_list = []#如果是none就不保存 for i in table_config: if not i['q']: continue q_list.append(i['q'])from repository importmodels data_list = models.Asset.objects.values(*q_list) data_list = list(data_list) #json传递的时候用的是字典一定注意 models.Asset.device_type_choices result = { 'table_config':table_config, 'data_list':data_list, #用来保存一个内存的列表储存形式 'global_list':{ 'device_type_choices': models.Asset.device_type_choices, 'device_status_choices':models.Asset.device_status_choices }}return HttpResponse(json.dumps(result))

    推荐阅读