I’m encountering the following error when trying to insert a comment into my SQLite database:
Error says "table comment has no column named data" apparently meaning that the data column doesn’t exist in the comment table, but I have defined it in my model. I appreciate any help given. Thank you for your time. Here’s the relevant code:
views.py:
from flask import Blueprint, render_template, request, flash, jsonify, redirect, url_for
from flask_login import login_required, current_user
from .models import Note, Comment
from . import db
from datetime import datetime
import json
views = Blueprint('views', __name__)
@views.route('/comments/<int:note_id>', methods=['GET', 'POST'])
def comment_section(note_id):
if request.method == 'POST':
note = Note.query.get(note_id)
data = request.form.get('comment')
print(data)
if data:
comment = Comment(data=data, note_id=note_id, user_id=current_user.id)
db.session.add(comment)
db.sessionmit()
flash('Comment was added successfully!', category='success')
return render_template('comments.html', user=current_user, note=note)
models.py:
from . import db
from flask_login import UserMixin
from sqlalchemy.sql import func
from datetime import datetime
class Note(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(db.String(10000))
date = db.Column(db.DateTime(timezone=True), default=func.now())
user = db.relationship('User')
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(150), unique=True)
password = db.Column(db.String(150))
first_name = db.Column(db.String(150))
note = db.relationship('Note')
liked = db.relationship(
'PostLike',
foreign_keys='PostLike.user_id',
backref='user', lazy='dynamic')
class PostLike(db.Model):
__tablename__ = 'post_like'
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
post_id = db.Column(db.Integer, db.ForeignKey('note.id'))
class Comment(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(db.String(10000), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'), nullable=False)
note_id = db.Column(db.Integer, db.ForeignKey('note.id', ondelete='CASCADE'), nullable=False)