请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师, 我想问一下, 如果编辑的时候form验证唯一怎么处理?

我想在表单中处理的话怎么排除当前当前编辑字段之后再验证唯一?

比如说我要编辑一篇文章

# forms
class ArticleForm(FlaskForm):
    ...
    def validate_title(self,field):
        article = Article.query.filter_by(title=field.data).first()
        if article:
            raise ValidationError("文章标题已经存在")

这个form验证新增文章的时候没有问题, 但是编辑文章的时候,如果没有改动title会提示“标题已经存在”。

我昨晚想了一下可以用继承解决这个问题,编辑的时候单独定义一个 ArticleEditForm 继承ArticleForm。 

但是还是有一个问题,我如何把这个文章的ID传入 validate_title这个方法中。

正在回答 回答被采纳积分+3

3回答

7七月 2018-04-15 14:50:36

编辑和新增时都要验证的字段写到基类里。特殊的写在子类里,比如标题这个字段的验证。

0 回复 有任何疑惑可以回复我~
runzx 2018-04-15 09:11:47

我猜是类似 注册时 对电子邮件唯一性检查, 可以通过ajax把字段数据传回后台验证。

0 回复 有任何疑惑可以回复我~
7七月 2018-04-15 02:56:39

可以具体一些吗?什么是验证唯一?什么是当前编辑字段?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3920523 #1
    我重新修改了一下问题, 用flask实际开发中是怎么解决这个问题的?
    回复 有任何疑惑可以回复我~ 2018-04-15 10:36:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信