장고 ORM은 레코드 삽입 중에 특수 SQL 트리거로 DB에서 생성되는 ID를 해석하지 않습니다. ID없이 모델을 저장하면 올바르게 저장되고 DB에 ID가 있습니까? 그러나 m.id
은 None
을 돌려줍니다.DB에서 SQL 스크립트로 생성되는 ID (장고 ORM)를 해결하는 방법
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로 정의 했습니까? 사실 장고가 자동으로 그렇게하기보다는 왜 그것을 정의 했는가? –
@DanielRoseman ID 이름을 알아야하기 때문에 마이 그 레이션에서 사용 (ID를 생성하는 트리거를 추가) –
그러나 장고는 트리거에 대해 알지 못하므로 필드가 db로 채워지는지 알지 못합니다. . –