Flask SQLAlchemy Проблемы с уникальными колонками
Я хочу сделать блог, в котором пользователь может создавать посты. И я хочу, чтобы название поста было уникальным. Но когда я пытаюсь создать пост, а пост уже существует, возвращается ошибка. Но когда я пишу попытку, она все равно возвращает ошибку. Почему это происходит?
@app.route('/makepost/',methods=['POST','GET'])
@limiter.limit('10 per 10 minutes',cost=ifonly)
def makepost():
try:
allposts = Post.query.all()
sear = 1
if not current_user.is_authenticated:
return redirect('/login')
poster = Users.query.filter_by(name=current_user.name).first()
if request.method == 'POST':
title = request.form['title']
content = request.form['content']
if len(title) < 5:
flash("Title must be at least 5")
if len(title) > 50:
flash("Title must be 50 characters max")
if len(content) < 5:
flash('Content must be at least 5 letters')
if len(title) > 5 and len(title) < 50 and len(content) > 5:
sear = 2
if sear == 2:
global post1
post1 = Post(title=title,content=content,name=current_user.name,author=current_user.id)
post2 = Post.query.all()
db.session.add(post1)
db.session.commit()
# error, there already is a user using this bank address or other
# constraint failed
if sear != 2:
flash('We couldnt make your post')
except:
flash('Error')
return render_template('posts.html')
class Users(UserMixin,db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(200),unique=True,nullable=False)
password = db.Column(db.String(200),unique=False,nullable=False)
role = db.Column(db.String(200),unique=False,nullable=False)
missions = db.Column(db.String(200),unique=False,nullable=True)
waiter = db.Column(db.String(200),unique=False,nullable=False)
posts = db.relationship('Post',backref='user')
class Post(db.Model):
id = db.Column(db.Integer,primary_key=True)
title = db.Column(db.String(200),unique=True,nullable=False)
content = db.Column(db.Text,unique=False,nullable=False)
name = db.Column(db.String(200),unique=False,nullable=False)
date_time = db.Column(db.DateTime(timezone=True),default=datetime.datetime.utcnow())
author = db.Column(db.Integer,db.ForeignKey('users.id'),unique=False)
Вот полная ошибка, которую я получаю
sqlalchemy.exc.IntegrityError
Я получаю эту ошибку в браузере и в журнале консоли.
Пожалуйста, ответьте.
Спасибо.