2014-10-23 4 views
0

내 사용자 프로필을 수정하고 싶습니다. 여기 내 모델, 양식 및보기가 있습니다. 'OBJ'의 전송 (보기)을 형성 한 후이 메시지가 나타납니다 : 제발 힌트TypeError : editProfile()에서 예상치 못한 키워드 인수 'obj'가 발생했습니다.

"TypeError: editProfile() got an unexpected keyword argument 'obj'"

합니다.

모델 :

class User(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(64), index=True, unique=True) 
    age = db.Column(db.Integer, index=True) 
    email = db.Column(db.String(120), index=True, unique=True) 

    def __repr__(self): 
     return '<User %r>' % (self.name) 

형태 :

class editProfile(Form): 
    name = StringField('name', validators=[DataRequired()]) 
    age = IntegerField('age', validators=[DataRequired()]) 
    email = StringField('email', validators=[Email()]) 

보기 :

@app.route('/edit/<int:id>') 
def editProfile(id): 
    post = User.query.get(id) 
    form = editProfile(obj=post) 
    if form.validate_on_submit(): 
     form.populate_obj(post) 
     db.session.commit() 
     flash("Profile was updated") 
     return redirect(url_for('index')) 
    return render_template('editProfile.html', form=form) 

답변

2

당신은 editProfile 기능이 아닌 클래스, 즉 호출하고, 당신이하고있는 재귀 . editProfile 함수에 obj이라는 인수가 없으므로 해당 오류가 발생합니다. 이름이 정확히 동일하기 때문입니다.

변경

def editProfile(id): 
    post = User.query.get(id) 
    form = EditProfileForm(obj=post) 

에 그리고 당신은 일 것입니다 것을 볼 수 있습니다.

+0

작동합니다. 고마워요 :) – Mark

관련 문제