标签添加及删除问题
来源:7-4 .标签管理3
慕无忌1371140
2017-08-10
当添加新标签时可以成功,但添加成功后再次点击添加则报错

而且此时点击tag_list页,该页也未更新。
只有重启服务器tag_list页才显示新加的标签,此时再次添加已有标签则可正常flash出添加失败的消息。
点击tag_list页的删除时报错(即使重启服务器也报错):

如下是view.py中有关标签的代码
# 添加标签
@admin.route('/tag/add/', methods=['GET', 'POST'])
@admin_login_req
def tag_add():
form = TagForm()
if form.validate_on_submit():
data = form.data
tag = Tag.query.filter_by(name=data['name']).count() # 检查标签是否已经存在(标签具有唯一性)
if tag == 1: # 若存在,则提示并返回添加标签页
flash('名称已经存在!', 'err'),
return redirect(url_for('admin.tag_add'))
tag = Tag( # 若不存在,则进行入库保存
name=data['name']
)
db.session.add(tag)
db.session.commit()
flash('添加标签成功!', 'ok')
redirect(url_for('admin.tag_add'))
return render_template('admin/tag_add.html', form=form)
# 标签列表:查询;分页显示
@admin.route('/tag/list/<int:page>/',methods=['GET'])
@admin_login_req
def tag_list(page=None):
if page is None:
page = 1
page_data = Tag.query.order_by(
Tag.addtime.desc()
).paginate(page=page, per_page=10)
return render_template('admin/tag_list.html', page_data=page_data)
# 标签删除
@admin.route('/tag/del/<int:id>/',methods=['GET'])
@admin_login_req
def tag_del(id=None):
tag = Tag.query.filter_by(id=id).first_or_404()
db.session.delete(tag)
db.session.commit()
flash('添加标签成功','ok')
return redirect(url_for('admin.tag_list', page=1))写回答
2回答
-
同学,你好,tag标签是不是重复添加了,name字段设置了唯一性!
# 标签 class Tag(db.Model): __tablename__ = "tag" id = db.Column(db.Integer, primary_key=True) # 编号 name = db.Column(db.String(100), unique=True) # 标题 addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间 movies = db.relationship("Movie", backref='tag') # 电影外键关系关联 def __repr__(self): return "<Tag %r>" % self.name0152017-08-11 -
慕无忌1371140
提问者
2017-08-10
admin_page.html

forms.py

tag_add.html

tag_list.html

views.py
00
相似问题




