模型定義如下:的Django模型:得到模型的主鍵剛剛創建
class UnitTab(models.Model):
unit_id = models.PositiveIntegerField(primary_key=True)
create_time = models.PositiveIntegerField()
update_time = models.PositiveIntegerField()
read_db_connection = 'game_center_admin_db'
write_db_connection = 'game_center_admin_db'
class Meta:
db_table = u'unit_tab'
def save(self, *args, **kwargs):
curr_time = int(time.time())
if not self.create_time:
self.create_time = curr_time
self.update_time = curr_time
super(UnitTab, self).save(*args, **kwargs)
def __unicode__(self):
return u'unit_tab_%s' % (self.unit_id)
,我只是拯救一個UnitTab
與UnitTab.objects.create()
來創建新的對象。 unit_id
有auto_increment
,所以我不必設置它。 但如果我使用"u = UnitTab.objects.create()"
,對象"u"
我回來的是unit_id
作爲無 - 雖然保存是成功的。那麼我怎麼能得到我剛剛保存/創建的UnitTab
的primary key(unit_id)
?
編輯:我使用Django 1.6.11爲我的項目
編輯:我登錄的屬性,發現u.save()
之後,unit_id
是無。 create_time
即可,實體保存成功。
編輯:從PositiveIntegerField更改爲AutoField後,unit_id
字段在save()後自動分配。只是不確定爲什麼會這樣。
我剛剛檢查並使用AutoField實際工作。只是想知道爲什麼會發生這種情況 –
呃,因爲這就是AutoField所做的,而其他的領域則不然。 –
但「刷新」適用於所有主鍵字段? @Daniel –