gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 06:29:09 25 4
gpt4 key购买 nike

标题说明了一切。使用 flask-admin 并希望在我的数据库中存储一个空字符串而不是 NULL,但是当我在 flask-admin 中将一个字段留空时,它会在数据库中输入 NULL。如果我在 flask-admin View 中键入 '',数据库会将其存储为数据库中的“''”。

我不是在问如何在 flask-admin View 中显示一个空字符串,正如很多其他人所问的那样。我在问我应该在 flask-admin View 中输入什么或者我应该更改什么代码以便从 flask-admin View 将空字符串存储在我的数据库中。

我需要执行此操作的原因是我的部分代码针对 ''(空字符串)验证有问题的表列。示例:db.tablename.query.filter_by(complete='')。一种选择是将我的所有验证更改为 db.tablename.query.filter_by(complete=None),但我想在验证 '' 时保持所有代码一致,将所有验证行更改为没有,所以如果我知道如何从 flask-admin View 中将表格单元格设置为空白字符串,那将是最有帮助的。

使用python3.6

最佳答案

要覆盖此行为,您可以创建一个新的字段类:

import wtforms.fields

class StringField(wtforms.fields.StringField):
def process_data(self, value):
self.data = value or ''

process_data 方法接收并存储表单数据。如果它收到 None,它将把它存储为 ''。要在您的 View 中使用此逻辑,请将此类添加到 form_overrides 属性:

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

关于python-3.x - Flask-Admin 在数据库中存储 NULL 而不是空字符串 ('' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53784805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com