Django模型:没有在MariaDB中设置booleanfield的默认值

时间:2017-11-07 01:58:00

标签: mysql django mariadb

Django:11.1 MariaDB:10.2.6

在models.py中,我按如下方式设置了一个布尔字段:

class myClassName(models.Model):

    class Meta:
        db_table = 'mytablename'
        verbose_name = 'name'
        verbose_name_plural = 'names'
        ordering = ['myid']

(several fields defined here...)

myField = models.BooleanField(verbose_name='name', default=True, help_text='some help here')                                           
def __str__(self):
    return str(self.myid)

然后,做'makemigrations'和'migrate'

之后,我可以看到在MariaDB中定义好的表,但是没有为BooleanFields设置默认值。字段定义为tinyint(1),默认= NULL。

我是否需要在字段定义中设置其他值,以便在数据库中正确配置默认值?

更新11/07:我在char字段中看到了同样的问题。在MariaDB表中将默认值设置为Null。我可以手动更改默认值,但我不知道为什么Django没有为我设置它。

class Migration(migrations.Migration):

    dependencies = [
        ('xyz', '040_something'),
    ]

    operations = [
        migrations.AddField(
            model_name='mymodel',
            name='myfield',
            field=models.CharField(blank=True, default='any', help_text='Some help', max_length=255, verbose_name='myfield_verbose'),
        ),
    ]

0 个答案:

没有答案