Getting the error on POST “TypeError: init() missing 1 required positional argument:’instructions'”, but it is clearly there. end of traceback is
File "C:UsersChrisDesktopMaintTrackerBackendapp.py", line 179, in add_task
new_task = Task(job, instructions)
^^^^^^^^^^^^^^^^^^^^^^^
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
job = db.Column(db.String, unique=False)
instructions = db.Column(db.String, unique=False)
def __init__(self,id, job, instructions):
self.id = id
self.job = job
self.instructions = instructions
class TaskSchema(ma.Schema):
class Meta:
fields = ('id','job', 'instructions' )
task_schema = TaskSchema()
tasks_schema = TaskSchema(many=True)
@app.route("/Task", methods=["GET"])
def get_tasks():
all_task = Task.query.all()
result = tasks_schema.dump(all_task)
return jsonify(result)
@app.route("/Task/<id>", methods=["GET"])
def get_task(id):
task = Task.query.get(id)
return task_schema.jsonify(task)
@app.route('/Task', methods=['POST'])
def add_task():
job = request.json['job']
instructions = request.json['instructions']
new_task = Task(job, instructions)
db.session.add(new_task)
db.session.commit()
task = Task.query.get(new_task.id)
return task_schema.jsonify(task)
@app.route("/Task/<id>", methods=["PUT"])
def task_update(id):
task = Task.query.get(id)
id = request.json['id']
job = request.json['job']
instructions = request.json['instructions']
Task.id = id
Task.job = job
Task.instructions = instructions
db.session.commit()
return task_schema.jsonify(task)
@app.route("/Task/<id>", methods=["DELETE"])
def task_delete(id):
task = Task.query.get(id)
db.session.delete(task)
db.session.commit()
return "Task was successfully deleted"
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
I’ve tried removing the id from add_task to get this. with it in it just gives me
Traceback (most recent call last):
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1498, in __call__
return self.wsgi_app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1476, in wsgi_app
response = self.handle_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChrisDesktopMaintTrackerBackendapp.py", line 175, in add_task
id = request.json['id']
^^^^^^^^^^^^^^^^^^
KeyError: 'id'