配置文件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))
推荐阅读
- 列出所有自定义的function和view
- tableView|tableView 头视图下拉放大 重写
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- Flutter的ListView
- OC:|OC: WKWebView详解
- Swift|Swift ----viewController 中addChildViewController
- WKWebview|WKWebview js 调用oc 和oc调用js
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)
- iview|iview upload 动态改变上传参数
- #12-UITableView|#12-UITableView 优化方案