Tôi có một bảng trong một cơ sở dữ liệu được khởi tạo và truy cập thông qua SQLAlchemy:SQLAlchemy OperationalError do Query-gọi autoflush
tôi thêm một kỷ lục để nó sử dụng Flask-SQLAlchemy như vậy:
...
content = request.form['content']
date = datetime.today()
post = Post(date, content)
db.session.add(post)
db.session.commit()
...
Hồ sơ này được thêm vào bảng phạt. Ngay sau khi mã được thực thi, tôi truy vấn bảng khác:
userID = session['userID']
posts = db.session.query(Post).filter_by(userID=userID).count()
Tuy nhiên tôi nhận được một lỗi trong quá trình truy vấn:
OperationalError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (_mysql_exceptions.OperationalError) (1292, "Incorrect date value: '11/20' for column 'date' at row 1") [SQL: u'UPDATE posts SET date=%s WHERE posts.id = %s'] [parameters: (('11/20', 1L))]
Tại sao ngày của bài đang được cập nhật khi tôi đã xác định nó khi thêm bản ghi vào bảng? Ngoài ra, nguyên nhân của lỗi này có thể là gì? Cảm ơn.
Edit:
Đây là những gì mô hình bảng cũng giống như:
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.String(500))
date = db.Column(db.Date, nullable=False)
def __init__(self, id, content, date):
self.id = id
self.content = content
self.date = date
Fix định dạng của đoạn và cũng thêm mã cho 'nét Post' của. – rantanplan
@rantanplan đã hoàn thành. –
Pav Tôi đã xóa câu trả lời của tôi, bạn nói đúng nó không liên quan. Vấn đề là chúng ta phải thiếu một số chi tiết (một số mã nhiều hơn có thể?) Để có được để dưới cùng của điều này. Nếu tôi nghĩ ra bất kỳ ý tưởng nào khác, tôi sẽ đăng câu trả lời mới. – rantanplan