为了账号安全,请及时绑定邮箱和手机立即绑定

如何手动填充 Django 模型数据以进行插入

如何手动填充 Django 模型数据以进行插入

呼啦一阵风 2021-09-25 14:36:50
我正在尝试存储速度测试的时间列表。所有时间都在客户端序列化并通过ajax发送到服务器。模型:class SpeedTest(models.Model):    t1 = models.DecimalField(max_digits=9, decimal_places=6, default=None, blank=True, null=True)    t2 = models.DecimalField(max_digits=9, decimal_places=6, default=None, blank=True, null=True)    t3 = models.DecimalField(max_digits=9, decimal_places=6, default=None, blank=True, null=True)    ...    ...    ...    t100+ = ...看法:def save(request):    results = json.loads(request.POST.get('results'))    speed_test = SpeedTest.objects.create()    for result in results:        key = "t"+str(result['key'])        speed_test.key = value    speed_test.save()哪里results有表格:results[0]['key'] = 1results[0]['value'] = 0.539results[1]['key'] = 2results[1]['value'] = 0.654results[2]['key'] = 3results[2]['value'] = 0.426.........results[100+]...我正在尝试遍历所有t1 - t100+值并将它们添加到我的模型对象中。即一个循环:speed_test.t1 = 0.539speed_test.t2 = 0.654speed_test.t3 = 0.426...etc这些生产线不起作用。key = "t"+str(result['key'])speed_test.key = value这样做的正确方法是什么?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

这是在不同上下文中回答的问题如何按名称设置 django 模型字段?.


进一步解释一下,并以您的代码为例:


通过key = "t"+str(result['key']),构造 Fieldname


通过设置所需的值 setattr(speed_test, key, result['value'])


在循环之后,不要忘记调用speed_test.save().


个人推荐之一:


如果您期待更多与 AJAX/JSON 相关的工作,您可能需要考虑Django-REST-Framework,因为它的 Serializer 可以很好地处理简单/扁平案例(您当前的问题属于此类)。


注意:在您给定的示例数据中


results[0]['key'] = 1

results[0]['value'] = 0.539

results[1]['key'] = 2

results[1]['value'] = 0.654

results[2]['key'] = 2

results[2]['value'] = 0.426

第三个结果真的会覆盖第二个结果吗?


希望这可以帮助。


查看完整回答
反对 回复 2021-09-25
  • 2 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信