嘗試一下這個(參見我上面的評論)import pandas as pddata = []for k, v in test['reports'].items(): model_name = k for model in v.items(): _data = {} _data['model'] = model_name _data['id'] = model[0] _data['message'] = model[1]['message'] _data['timestamp'] = model[1]['timestamp'] data.append(_data)df = pd.DataFrame(data)728115 我根本不懂基本編程,幾個月前剛剛學習了 python 和 Django,由于迫切需要,我決定創(chuàng)建自己的程序來支持我的部門和團隊 程序運行后,我想讓它變得更容易對于用戶來說,在我環(huán)顧四周之后,建議使用bulk_create和ajax JavaScript,絕對不使用JavaScript。在尋找使用bulk_create的方法之后,我發(fā)現(xiàn)它效率很低,例如:instance = get_object_or_404(Audit, id=766)item1 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=1)item2 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=2)item3 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=3)item4 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=4)item5 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=5)item6 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=6)item7 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=7)item8 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=8)item9 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=9)item10 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=10)item11 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=11)item12 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=12)]AuditItem.objects.bulk_create(audit_mie)除了上面的方法之外還有更簡單的方法嗎?如果沒有,那么我堅持下去,通過在每個項目 id 中創(chuàng)建對象(當前大約為 130),并將其分組為 8 個(當前)bulk_create() 方法。
1 回答

慕桂英3389331
TA貢獻2036條經(jīng)驗 獲得超8個贊
您可以使用列表來保存所有項目,并使用 for 循環(huán)來迭代它們。
items = []
audit_mie = []
instance = get_object_or_404(Audit, id=766)
#the range is the starting and ending range, it will count from 1 to 12
for i in range(1,13)
tmp = (get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=i))
items.append(tmp)
audit_mie.append(AuditItem(audit=instance,item=tmp,kategori=tmp.kategori.kategori))
AuditItem.objects.bulk_create(audit_mie)
items[1]
迭代列表的 for 循環(huán)將允許您在需要時使用或您特別想要訪問的任何項目(如果需要) 轉(zhuǎn)到特定項目。如果需要,此資源應該可以幫助您理解列表,并且這應該有助于 for 循環(huán)。
添加回答
舉報
0/150
提交
取消