为什么不是if tag.name == data["name"] and tag_count == 1:呢?
来源:7-4 .标签管理3
ALOH
2017-08-22
if tag.name == data["name"] and tag_count == 1: flash("标签已存在!", "err") return redirect(url_for("admin.tag_edit", id=id))
如果是tag.name != data["name"]的话不是永远都不会触发这个flash了吗
写回答
2回答
-
同学,你好,这里是这样理解的:
tag_count = Tag.query.filter_by(name=data["name"]).count() if tag.name != data["name"] and tag_count == 1:
第一句是查询当前表单提交的标签名称在数据库里面是否存在
第二句是对比当前提交的标签名称和原数据库中的标签名称是否相同,如果不相同,说明当前提交的标签名称修改过,如果tag_count==1,说明当前提交的标签名称和原数据库中的标签名称不相同并且当前提交的标签名称在数据库中有其他记录了,出现这种情况就要排除它。
举个例子
数据库中有两个标签A和B,A表示原数据库中的标签名称、B表示数据库中的其他标签名称。我们既要判断提交的C和A不相等,也要判断C和B不重复,这样才能达到去重的效果。
012017-08-22 -
Lee1
2017-08-22
就是 tag.name==data['name'] 我是这样判断的
012017-08-22
相似问题