我正在使用sqlalchemy并对数据库中的主键(postgres)使用UUID
这是我的课:
class EntityType(db.Model):
__tablename__ = 'entity_type'
id = db.Column(UUID(as_uuid=True), primary_key=True, server_default=db.text('gen_random_uuid()'))
name = db.Column(db.Text, nullable=False)
在表单中添加一个实体,用户必须选择一个实体类型,我有以下几点
class EntityAddForm(FlaskForm):
url = StringField('URL', validators=[DataRequired(),URL(require_tld=True)])
entity_type = SelectField('Entity type')
description = TextAreaField('Description')
submit = SubmitField('Add')
def validate_entity_type(self, entity_type):
entity_type = EntityType.query.filter_by(id=entity_type.data).first()
if entity_type is None:
raise ValidationError('Please select a different entity type.')
要加载表单,我有以下代码用表中的行填充selectField。你知道吗
form = EntityAddForm()
form.entity_type.choices = [(et.id, et.name) for et in EntityType.query.order_by('name')]
问题是如果提交时验证表格():在提交时不返回True。你知道吗
似乎WTForms需要一个string/unicode/int,并对selectField的id使用强制
有没有办法继续使用UUID类型而不是切换到integer来让selectField工作?你知道吗
我尝试了QuerySelectEntity或自定义UUID类型,但未能成功。你知道吗
谢谢
您是否尝试过将数据库转换为字符串以使其在web上运行良好:
或
在传递到web以在表单中使用时明确转换数据:
以及
相关问题 更多 >
编程相关推荐