[更新:更改問題的標題更具體]如何使自動填充和Django管理自動遞增的字段
很抱歉,如果我沒有做這個問題非常好,我可以」 W圖如何做到這一點:
class WhatEver():
number = model.IntegerField('Just a Field', default=callablefunction)
...
凡callablefunction
做這個查詢:
from myproject.app.models import WhatEver
def callablefunction():
no = WhatEver.objects.count()
return no + 1
我想自動寫入下一個編號, nd我不知道該怎麼做。
我從callablefunction
錯誤,指出它不能導入模型,我認爲必須有一個更簡單的方法來做到這一點。甚至沒有必要使用這個,但我不知道如何使用PK號碼。
我GOOGLE了這件事,我發現的唯一的事情是使用自動遞增的數量save()方法...但我想說的是,在<textfield>
保存前...
你會怎麼做?
你確定這段代碼也可以用於併發事務嗎?當兩個請求同時執行'count()'時會發生什麼,並在稍後寫入相同的值? – vdboor 2010-06-28 08:53:06
這是真的......在我的使用案例中,這並不重要,因爲一次不會有兩個請求......但即使如此,我仍然必須考慮更好的方法來實現此目的。感謝您的建議! :) – 2010-06-28 13:13:44
我已經能夠執行類似於我想要做這個字段的東西:'id = models.IntegerField(primary_key = True,blank = True)'唯一的是它不是自動填充的,但解決了問題的同時請求(我認爲) – 2010-06-28 15:49:34