TypeError: fonction(auto, élément, **kwargs) prend exactement 2 arguments (3)

J'ai une fonction qui met les données dans une base de données, appelée new_item():

def new_item(self, item, **optional):

Après l'envoi d'un formulaire web, une fonction doit vérifier la saisie de l'utilisateur et ensuite utiliser cette fonction pour mettre la saisie de l'utilisateur dans la base de données (je suis en utilisant le Flacon, le nom de la fonction est add_item()):

Market.new_item([request.form['title'], 
                 session.get('user_id'), 
                 request.form['category']], 
                {'desc': request.form['desc'], 
                 'place': request.form['place'], 
                 'price': request.form['price'], 
                 'ono': ono})

Mais j'obtiens cette erreur:

File X, line 99, in add_item
'ono': ono})
TypeError: new_item() takes exactly 2 arguments (3 given)

Fourrure de débogage je imprimer cette déclaration avant l'appel de la fonction add_item. Sortie de la Console est:

([u'iPhone 5', '791465667539154', u'2'], 
 {'price': u'99', 'place': u'Bossental', 'ono': True, 'desc': u'My brand new iPhone'})

Je ne sais vraiment pas quel est le problème. Je n'ai jamais travaillé avec **kwargs avant, est-ce lié au problème?

OriginalL'auteur Eknoes | 2014-06-16