Django开发者群  - 讨论区

标题:[已解決]如何更新DjangoModel之套用最大distance欄位

2012年04月07日 星期六 21:30

有個Image model裡頭屬性有id,distance,以下將寫的程式貼出, 
vectord的值會隨著neighbours迴圈,逐漸變數字 

views.py片段程式: 

neighbours=[{'vector': [2, 0, 1, 0], 'label': '2'}....其他資料依此格式類推] 

for nvector in neighbours: 
    vectord=10(屬於id=2) 
    """經過一個for迴圈 
    vectord=4(屬於id=1) 
    經過一個for迴圈 
    vectord=3(屬於id=3) 
    經過一個for迴圈 
    vectord=8(屬於id=4) 
    經過一個for迴圈 
    vectord=2(屬於id=2) 
    經過一個for迴圈 
    vectord=2(屬於id=0.5)""" 

    for tid in nvector['label']: 
        t=Image.objects.get(pk=tid) 
        t.distance=vectord 
        t.save() 

此程式result: 
id=1 distance=4 
id=2 distance=0.5 
id=3 distance=3 
id=4 distance=8 

可是目前遇到的問題在於id=2之distance會因為上述寫法,而得0.5, 
但我其實是想要id=2之distance要記錄"10",也就是vectord中id=2之間最大的值, 
但會因為我這樣寫法,而被覆蓋, 
請問該怎麼修改這個程式,才會在相對應的id之vectord值取最大的distance紀錄呢? 
麻煩大家了,謝謝您。 

目標result: 
id=1 distance=4 
id=2 distance=10 
id=3 distance=3 
id=4 distance=8

2012年04月08日 星期日 13:59

已解決

for nvector in neighbours:
    idkey=nvector['label']
    vectord=distance
    t=Image.objects.get(pk=int(idkey))
    t.distance=vectord
    t.save()

2012年04月08日 星期日 21:38

:)

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2020

    京ICP备05028076号