我有以下的 Django
模型代码:
status = models.PositiveIntegerField(default = 0b000)
comments_allowed = models.BooleanField(default = True) # whether comments are allowed to this post
但是我预期它会生成类似于以下SQL语句:
`status` integer NOT NULL default '4',
`comments_allowed` bool NOT NULL default TRUE
但这并没有发生,当我运行manage.py sqlall appname
时它产生了:
`status` integer UNSIGNED NOT NULL,
`comments_allowed` bool NOT NULL
我深入研究了 Django
的代码并且进行了搜索,但是没有发现有用的信息。但是 James Bennet 的评论提到default
不会被认为影响生成 SQL
,但在 Django admin 中需要。即使如此,我该如何获得期望的效果呢?
我使用的 Django 版本是 1.3.0 final。
default
可以被赋值为可调用对象的事实表明它主要在模型实例创建期间使用。除了手动运行SQL ALTER
命令外,据我所知,无法做到你想要的。 - Shawn Chin