我有以下Django模型代码:
Django
status = models.PositiveIntegerField(default = 0b000) comments_allowed = models.BooleanField(default = True) # whether comments are allowed to this post
但是我希望,它将生成类似
`status` integer NOT NULL default '4', `comments_allowed` bool NOT NULL default TRUE
这没有发生,当我运行manage.py sqlall appname它时会产生:
manage.py sqlall appname
`status` integer UNSIGNED NOT NULL, `comments_allowed` bool NOT NULL
深入研究Django的代码并进行谷歌搜索没有给我任何好处,但是James Bennet的注释default不被认为会影响生成SQL,但是Django管理员需要它。即使是这样,我如何获得理想的效果?
default
SQL
我的Django版本是1.3.0最终版
请注意,该default参数也可以采用可调用对象:https : //docs.djangoproject.com/en/dev/ref/models/fields/#default。这当然是无法在SQL中重现的行为!因此,Django无法针对每种可能的情况生成SQL。出于简单性和一致性的考虑,他们似乎选择了在任何情况下都不生成SQL。