亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何手動填充 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 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號