[問題] 如何在objects.create裡使用for迴圈

作者: BlgAtlfans (BLG_Eric)   2016-07-03 18:36:09
各位好
我有以下Model:
class Sdata(models.Model):
id = models.IntegerField(blank=True,primary_key=True)
data = JSONField()
def __str__(self):
return self.id
現在我想做的是把data欄位動態寫入csv資料
先用csv.reader 一行一行讀
再用key:value的方式寫入Jsonfield('資料欄位' : '對應資料值')
但是我可能有很多筆資料
而且有些資料筆數不一定 資料欄位內容也未知
我已經有試著做出以下程式碼(views.py):
def display(request):
t = 0 #count loop time
sdata = Sdata.objects.all()
for document in Document: #Document是儲存csv檔的地方
datareader = csv.reader(open(document.p), delmiter=',')
#p是路徑
for row in datareader:
if t == 0: #first time
col_count = len(row)
row_count = sum(1 for row in datareader)
frow = row #將csv資料第一行(欄位)儲存到frow
t = t+1
else: #not first time
Sdata.objects.create(
name = ('id%d' % t)
for i in range(0, col_count,1):
data = {
('%s' % frow[i]): ('%s' % row[i]),
}
)
t = t+1
t = 0
return render_to_response('display.html',
RequestContext(request,locals()))
現在問題是
else後的填入資料部分
django好像不接受在objects.create中放入if,for,while...等
所以應該要怎麼改才能做到像我上面一樣
讓jsonfield動態填入多個key:value?
感謝各位~
作者: ck574b027 (荒圍!定厝!賊!妹!)   2016-07-03 18:52:00
讓 data 等於一個 dict comprehension

Links booklink

Contact Us: admin [ a t ] ucptt.com