该模型定义如下:
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
为None -尽管保存成功。因此,如何能我能得到primary key(unit_id)
的的UnitTab
我刚才保存/创建?
编辑:我正在为我的项目使用Django 1.6.11
编辑:我记录了这些属性,发现之后u.save()
,unit_id
是None。create_time
是的,该实体已成功保存。
编辑:从PositiveIntegerField更改为AutoFieldunit_id
后,将在save()之后自动分配该字段。只是不确定为什么会这样。
您是否有特定原因不想使用models.AutoField
?
unit_id = models.AutoField(primary_key=True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句