Django ORMは、レコードの挿入中に特別なSQLトリガーでDBに生成されたIDを解決しません。 IDなしでモデルを保存するとき、正しく保存され、IDがDBにありますか? m.id
は私にNone
を返します。DB上のSQLスクリプトで生成されたID(Django 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として定義したのはなぜですか?実際、Djangoに自動的にそうするのではなく、なぜそれを定義したのですか? –
@DanielRoseman私はIDの名前を知っているので、マイグレーション(それはIDを生成するトリガーを追加する)でそれを使用する必要があります –
しかし、Djangoはあなたのトリガーを知らないので、フィールドがdb 。 –