我有一组带有Flask-WTF的SelectField,并且我用Flask-Babel转换了默认语言。
这是我的代码段:
from flask_babel import _, lazy_gettext as _l
class PaymentStatus(enum.Enum):
PENDING = _l('PENDING')
COMPLETED = _l('COMPLETED')
EXPIRED = _l('EXPIRED')
def __str__(self):
return '{}'.format(self.value)
payment_status = [(str(_l(y)), y) for y in (PaymentStatus)]
class PaymentForm(FlaskForm):
status_of_payment = SelectField(_l('Payment Status'), choices=payment_status)
# ...
# ...
这是我的模型:
class Payment(db.Model):
__tablename__ = 'payment'
id = db.Column(db.Integer, primary_key=True)
status_of_payment = db.Column(db.Enum(PaymentStatus, name='status_of_payment'))
# ...
# ...
并且当我尝试将Flask-WTF表单中的值插入到数据库中时,出现了一些错误。
这是我如何将其插入数据库的代码段:
if form.validate_on_submit():
payment = Payment(
# payment_status=form.status_of_payment.data
payment_status=PaymentStatus.PENDING.value
# ...
# ...
)
enum
PENDING
的值也转换为浏览器上首选语言的语言,所以我收到了此错误消息:
sqlalchemy.exc.StatementError:(builtins.LookupError)“ MENGUNGGU”为不在定义的枚举值中
有关更多信息:“ MENGUNGGU” =是英语中“ PENDING”的印度尼西亚语言。
所以这里的问题是,当我插入SelectField
值时,它还将语言转换为我的首选浏览器语言,而我的数据库[
我有一组带有Flask-WTF的SelectField,并使用Flask-Babel转换了默认语言。这是我的代码段:从flask_babel import _,lazy_gettext as _l class PaymentStatus(...