django模型:获取刚创建的模型的主键

Junchao Gu

该模型定义如下:

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)

而我只是保存一个UnitTabUnitTab.objects.create()创建一个新的对象。unit_idauto_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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django模型主键成对

来自分类Dev

在Django中创建了模型表单,缺少主键

来自分类Dev

Django模型尝试自动创建主键字段(即使已指定)

来自分类Dev

如何获取在Django模型中自动生成的主键ID

来自分类Dev

获取雄辩模型实例的主键

来自分类Dev

Django模型继承创建或从父级获取

来自分类Dev

如何从模型而不是主键获取同名

来自分类Dev

Django使用复合主键更新模型

来自分类Dev

正确获取Django模型

来自分类Dev

Django:获取多个模型

来自分类Dev

从Django中的基本模型“创建”子模型

来自分类Dev

如何在Django中使用其他模型的主键作为模型名称生成模型

来自分类Dev

创建线程注释模型Django

来自分类Dev

用于创建表的Django模型

来自分类Dev

从词典列表创建的Django模型

来自分类Dev

创建线程注释模型Django

来自分类Dev

在Django中创建相同的模型

来自分类Dev

Django模型在获取时更新

来自分类Dev

Django:如何获取模型的密钥

来自分类Dev

如何从Django模型获取ID

来自分类Dev

如何从Django模型获取ID

来自分类Dev

Django - 从模型中获取值

来自分类Dev

动态模型的主键

来自分类Dev

动态模型的主键

来自分类Dev

在Django模型中设置主键起始值

来自分类Dev

具有两个主键的Django模型

来自分类Dev

没有主键的Django模型中的“更新”而不是“保存”

来自分类Dev

在Django中保存到模型后返回主键

来自分类Dev

Django-检查两个模型的主键是否匹配