0

I'm trying to create an API with Flask and SQLAlchemy, my function add_user is working perfectly, get_all users too, but i have some issues on my get users (return a specific user ) selected by email (mail is my primary key).

class User(db.Model):
    #id = db.Column(db.Integer)
    name = db.Column(db.String(30))
    badgenum = db.Column(db.String(30))
    mail = db.Column(db.String(30), primary_key=True)
    status = db.Column(db.String(30))
    admin = db.Column(db.String(30))
    #borrowed = db.relationship('Borrowing', backref='user', lazy=True)

def __init__(self, name, badgenum, mail, status, admin):
    self.name = name
    self.badgenum = badgenum
    self.mail = mail
    self.status = status
    self.admin = admin


class UserSchema(ma.Schema):
    class Meta:
        fields = ('name', 'badgenum', 'mail', 'status', 'admin')
user_schema = UserSchema()
users_schema = UserSchema(many=True)

then , my function that causes problems:

@app.route("/users/<mail>", methods=["GET"])
def user_detail(mail):
    user = User.query.filter(User.mail == mail).first()
    return user_schema.jsonify(user.name)

I test my API with Postman, i added 2 new users to my database, then when i try the last function i have this error:

line 834, in __filter_fields '"{0}" is not a valid field for {1}.'.format(key, obj)) AttributeError: "status" is not a valid field for username1.

SuperShoot
  • 9,880
  • 2
  • 38
  • 55
JeanSec
  • 11
  • 1
  • 6

1 Answers1

0

Try like below.

    user = User.query.filter_by(mail=mail).first()
    return user_schema.jsonify(user)
extractor
  • 39
  • 7
  • actually both the code works, `user = User.query.filter(User.mail == mail).first()` or `user = User.query.filter_by(mail=mail).first()` . while returning the result, we can say like . `return user_schema.jsonify(user)` – extractor Jun 20 '18 at 02:49