-1

I want to handle a GET request in my Flask REST API.The request will include List parameter and I use this to be a typical GET request:

https://localhost:5000/organisation?List=1

this request, will return all of Organisation Model information. Organisation is a Model class for a table of my MySQL database(by peewee).

I want to enter PrivenceId parameter in request and will return all of Organisation Model information where Organisation.PrivencedId == PrivenceId parameter, But I encounter the following Error: TypeError: 'Organisation' object is not iterable

my code (OrganisationController.py file) is:

from flask_restplus import Resource, reqparse
from Models.Organisation import Organisation
from flask import request

# Define parser and request args
parser = reqparse.RequestParser()
parser.add_argument('List', type=int)
parser.add_argument('ProvinceId', type=int)

class List(Resource):

    def get(self):

        args = parser.parse_args()
        List = args['List']
        ProvinceId = args['ProvinceId']      

        if  List :
            Organisations = Organisation.select() 

            Ls = [dict (
                 ID = c.ID,
                 Title = c.Title,
                 Code = c. Code,
                 OrgEnumId = c.OrgEnumId,
                 ProvinceId = c.ProvinceId, 
                 CityId = c.CityId,
                 Address = c.Address,
                 Phone = c.Phone,
                 ) for c in Organisations
                ]

            return dict(Organisations = Ls)

         elif (ProvinceId) :
            Organisations = Organisation.select().where
                             (
                             Organisation.ProvinceId ==args['ProvinceId']
                             ).get()

            Ls = [dict (
                 ID = c.ID,
                 Title = c.Title,
                 Code = c. Code,
                 OrgEnumId = c.OrgEnumId,
                 ProvinceId = c.ProvinceId, 
                 CityId = c.CityId,
                 Address = c.Address,
                 Phone = c.Phone,
                 ) for c in Organisations
                ]


            return dict(Organisations = Ls)

and boot.py file for run api is :

from flask import Flask 
from flask_restplus import Api
from Controllers import OrganisationController


app = Flask(__name__)

api = Api(app)

api.add_resource(OrganisationController.List, '/organisation')


if __name__ == "__main__":

    app.run ('127.0.0.1', 5000, True)

Could you help me?

mina
  • 133
  • 2
  • 13

1 Answers1

0

I changed this line of my code and solved my problem:

Organisations = Organisation.select().where
                         (
                         Organisation.ProvinceId ==args['ProvinceId']
                         )
mina
  • 133
  • 2
  • 13