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'),
),
]