2

I'm using Flask-SQLAlchemy with many to many relationship. And i try to remove current user from users but i only receive en error like shown in a subject. What i'm doing wrong i couldn't understand. Thanks in advance for your help

My models below:

subs = db.Table('subs',
            db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
            db.Column('request_id', db.Integer, db.ForeignKey('request.id'))
            )

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120))
    role = db.Column(db.String(120))
    password_hash = db.Column(db.String(120))
    requests = db.relationship('Request', secondary=subs, backref=db.backref('users', lazy='dynamic'))

class Request(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    org = db.Column(db.String(120))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    cost = db.Column(db.Integer)
    created = db.Column(db.DateTime, default= datetime.utcnow)
    cost_time = db.Column(db.DateTime, default = datetime.utcnow)

My Form for delete:

class Remove(FlaskForm):
    remove = IntegerField('delete request')
    submit = SubmitField('delete')

My Route:

@app.route('/delete', methods = ['GET', 'POST'])
def delete():
    form = Remove()
    if form.validate_on_submit():
        request = Request.query.get(form.remove.data)
        request.users.remove(current_user)
        db.session.commit()
        return redirect('index')
    return render_template('remove.html', form=form, id=id)
J_log
  • 223
  • 1
  • 3
  • 12

0 Answers0