python - OperationalError: table comment has no column named data while inserting a comment into my database - Stack Overflow

admin2025-04-17  1

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)


转载请注明原文地址:http://anycun.com/QandA/1744885131a89001.html