【发布时间】:2017-03-27 12:25:55
【问题描述】:
Django ORM 无法解析在插入记录时使用特殊 SQL 触发器在 DB 中生成的 id。
当我保存没有 ID 的模型时,它会正确保存并在 DB 中有 ID?但是m.id 回复我None。
class SomeModel(Model):
id = IntegerField(primary_key=True)
name = CharField(null=False, max=50)
m = SomeModel(name='asd')
m.save()
m.id # - None
保存后如何解析自动生成的 ID?或者我如何重写save() 方法?或者改变字段类型?
我需要使用自己的触发器而不是 IDENTITY!
【问题讨论】:
-
为什么将
id字段定义为IntegerField?事实上,你为什么要定义它,而不是让 Django 自动定义呢? -
@DanielRoseman 因为我需要知道 id 名称才能在迁移中使用它(添加触发器,生成 ID)
-
但是 Django 不知道你的触发器,所以它不知道该字段将由 db 填充。
-
@DanielRoseman 是的,我知道,我怎么能告诉 django 这件事?
标签: python sql-server django django-models pymssql