标题说明了一切。使用flask-admin并想在我的数据库中存储一个空字符串而不是NULL,但是当我在flask-admin中将字段留空时,它将在数据库中输入NULL。如果我在flask-admin视图中键入“”,则数据库会将其存储为“''”。
我并不是在问如何在flask-admin视图中显示一个空字符串,因为其他许多人都在问。我在问我应该在flask-admin视图中键入什么,或者应该更改什么代码,以便从flask-admin视图在数据库中存储一个空字符串。
我需要这样做的原因是我的代码部分验证了有争议的表列是否为''(空字符串)。示例:db.tablename.query.filter_by(complete ='')。一种选择是将我所有的验证更改为db.tablename.query.filter_by(complete = None),但是我想在验证''时保持所有代码一致,并且将所有验证行更改为没有,所以如果我知道如何从flask-admin视图中将表格单元格设置为空白字符串,那将是最有用的。
使用python3.6
答案 0 :(得分:0)
要覆盖此行为,您可以创建一个新的字段类:
import wtforms.fields
class StringField(wtforms.fields.StringField):
def process_data(self, value):
self.data = value or ''
process_data
方法接收并存储表单数据。如果收到None
,它将存储为''
。要在您的视图中使用此逻辑,请将此类添加到form_overrides
属性中:
class MyView(ModelView):
form_overrides = {
'my_field': StringField,
}