Django:数据库中的默认值,而不仅仅是ORM

时间:2015-08-13 11:07:46

标签: django database orm default-value

我希望数据库中的列具有默认值,而不仅仅是django orm。

相关票证处于“wontfix”状态:https://code.djangoproject.com/ticket/470

在关系数据库中创建默认值的首选方法是什么?

在我的情况下,它是一个BooleanField,默认为FALSE。

我使用PostgreSQL,但AFAIK在这种情况下无关紧要。

2 个答案:

答案 0 :(得分:4)

我这样解决了。我只添加了底部的一行。

class Migration(migrations.Migration):

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='State',
            fields=[
                ('id', models.CharField(max_length=256, serialize=False, primary_key=True)),
                ('state', models.BooleanField(default=True)),
            ],
            bases=(models.Model,),
        ),

        ### The following line was added 
        migrations.RunSQL('alter table box_state alter column state set default false')
    ]

答案 1 :(得分:-2)

你可以这样做:

class MYModel(models.Model):
    is_teacher = models.BooleanField(default=False)