% psqlmydb=# CREATE table test ( label text default '',txID BIGINT DEFAulT txID_current());CREATE tablemydb=# \d test table "public.test" Column | Type | ModifIErs --------+--------+------------------------ label | text | default ''::text txID | bigint | default txID_current()mydb=# INSERT INTO test (label) VALUES ('mylabel');INSERT 0 1mydb=# select * from test; label | txID ---------+-------- mylabel | 192050(1 row)
该表的Django模型可能看起来像
class Test(models.Model): label = TextFIEld('Label',default='') txID = BigIntegerFIEld('txID',default=???)
有没有办法将数据库函数指定为默认值,还是在运行syncdb后需要在Postgresql中添加默认值作为单独的步骤?
解决方法 您可以将可调用指定为“默认”https://docs.djangoproject.com/en/dev/ref/models/fields/#default
让你的callable执行原始sql来获取你所追求的值
https://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly
关于你的txID_current(),请务必阅读
https://docs.djangoproject.com/en/dev/topics/db/transactions/#django-s-default-transaction-behavior
以上是内存溢出为你收集整理的如何使用PostgreSQL函数定义Django模型字段作为默认值全部内容,希望文章能够帮你解决如何使用PostgreSQL函数定义Django模型字段作为默认值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)