[Python] OperationalError: table comment has no column named data while inserting a comment...

Discussão em 'Python' iniciado por Stack, Janeiro 31, 2025.

  1. Stack

    Stack Membro Participativo

    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.session.commit()
    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)

    Continue reading...

Compartilhe esta Página