Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Flask Admin在数据库中存储NULL,而不是空字符串(';';)_Python 3.x_Flask Admin - Fatal编程技术网

Python 3.x Flask Admin在数据库中存储NULL,而不是空字符串(';';)

Python 3.x Flask Admin在数据库中存储NULL,而不是空字符串(';';),python-3.x,flask-admin,Python 3.x,Flask Admin,标题说明了一切。使用flask admin并希望在我的数据库中存储一个空字符串,而不是NULL,但是当我在flask admin中保留一个字段为空时,它会在数据库中输入NULL。如果我在flask admin视图中键入“”,数据库将其存储为数据库中的““”” 我不是像许多其他人所问的那样,询问如何在flask admin视图中显示空字符串。我问我应该在flask admin视图中键入什么,或者应该更改什么代码,以便从flask admin视图在数据库中存储空字符串 我之所以需要这样做,是因为我的

标题说明了一切。使用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),但我希望在验证“”时保持所有代码的一致性,并且将所有验证行更改为None会非常困难,因此如果我知道如何从flask admin视图中将表单元格设置为空字符串,这将非常有帮助


使用python3.6来覆盖此行为,您可以创建一个新的字段类:

import wtforms.fields

class StringField(wtforms.fields.StringField):
    def process_data(self, value):
        self.data = value or ''
处理数据
方法接收并存储表单数据。如果它接收到
None
,它将把它存储为
'
。要在视图中使用此逻辑,请将此类添加到
form\u overrides
属性中:

class MyView(ModelView):
    form_overrides = {
        'my_field': StringField,
    }