小编Thu*_*ife的帖子

BooleanField中'default = True'的重点是什么?

我有一个简单的问题:在我的模型中,我正在为我的一个表定义结构; 不过,我想设置为默认值Booleanfield:own,但它似乎并没有正常工作.这是我在模型中的代码:

class Books(models.Model):
    title = models.CharField(max_length=100)
    own = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

当我desc在mysql中的表时,这就是我得到的(请注意,自己的默认值为Null):

在此输入图像描述

此外,当我尝试执行以下操作时:

INSERT INTO `counters_books` (`title`) VALUES ('My Brain is Open')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR 1364 (HY000): Field 'own' doesn't have a default value
Run Code Online (Sandbox Code Playgroud)

PS我明白通过使用NullBooleanField我将能够解决问题; 但是,default除非我必须为该字段指定值,否则如果我不能插入行有什么意义呢?

django django-models

7
推荐指数
1
解决办法
3058
查看次数

对带有单个下划线的字段名称使用过滤器

我有一个名称字段end_date,当我尝试在我的视图中使用过滤器时:

c = Coursera.objects.filter(end_date__lt = datetime.date.today()).order_by('-date')[:1].get()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法将关键字"日期"解析为字段.选择是:......

end_被完全忽略了; 因此,我认为这end可能是一个关键词; 显然,我可以将字段名称更改为其他名称; 但是,我的问题是:还有另一种方法仍然使用该字段名称并能够使用过滤器吗?

PS我认为关键字如lt,或gt仅在两个下划线之后使用!

django django-models django-views django-filter

2
推荐指数
1
解决办法
548
查看次数