首页 > 解决方案 > 带有列名和值的 Django 模型数据动态

问题描述

在 django 以动态方式创建新记录时出错,ID 是预期编号但得到 'OrderNo= "Order No", OrderSuffix= "Order Suffix", Reference= "Reference", ItemCode= "Item Code", QtyOrdered= "Qty Ordered ", QtyShipped = "发货数量", Warehouse = "仓库", DispatchDate = "发货日期", TrackingNo = "跟踪编号", CarrierCode = "承运人代码"'

但是如果我把这个字符串放在它工作正常的下面

data = shipment(OrderNo= "Order No", OrderSuffix= "Order Suffix", Reference= "Reference", ItemCode= "Item Code", QtyOrdered= "Qty Ordered", QtyShipped= "Qty Shipped", Warehouse= "Warehouse", DispatchDate= "Dispatch Date", TrackingNo= "Tracking No", CarrierCode= "Carrier Code") #shipment is the model
for row in table:
            ind = 0
            rowdata = ''
            for col in config['header_columns']:
                rowdata += col['title'] + '= "' + row[ind] + '"' + ', '
                ind = ind + 1
            rowdata = rowdata[:-2]
            #return HttpResponse(rowdata)
            data = shipment(rowdata) #shipment is the model
            data.save(using="integration")

在此处输入图像描述

这意味着如果我直接放入创建的字符串变量使其动态显示“ID”需要一个数字,但如果我把它完全工作正常则字符串。

任何人都可以帮助我。在此先感谢。

标签: django

解决方案


生成一个看起来像 Python 代码的字符串是行不通的。您想生成一个dict然后将其解压缩为单独的参数,例如:

for row in table:
    rowdata = dict((col['title'], i) for col, i in zip(config['header_columns'], row))
    data = shipment(**rowdata)

推荐阅读