Я новичок в python, начал с python 3 и django1.8. Можем ли мы передать словарь в качестве параметра с несколькими значениями в нем, но меньше аргументов в определении функции.словарь python как параметр с несколькими значениями в словаре
def save_myobj(request):
'''
'''
reqobj = dict(zip(request.POST.keys(), request.POST.values()))
my_dict = prepare_profile_dict(**reqobj)
obj = Model.objects.get(pk=1)
obj.__dict__.update(my_dict)
obj.save()
return HttpResponse("true")
Вот мой запрос объекта:
reqobj = {
u'csrfmiddlewaretoken': u'xzlrzJkpKb0aAIvdJ7Z7aX05uhHjnwjX',
u'email': u'',
u'first_name': u'abc',
u'last_name': u'def',
u'revenue': u''
}
и здесь prepare_profile_dict
def prepare_profile_dict(first_name, last_name, email):
''' '''
return {
"revenue" : get_revenue(),
"first_name":first_name,
"last_name":last_name,
"email":email
};
Но получить ошибки,
TypeError at /profile/save/
prepare_profile_dict() got an unexpected keyword argument 'revenue'
Я не думаю, что есть что-нибудь делать с Mod эл.
class Model(models.Model):
'''
'''
first_name = models.TextField("first_name", blank=True, null=True, db_index=True)
last_name = models.TextField("last_name", blank=True, null=True, db_index=True)
email = models.TextField("email", blank=True, null=True, db_index=True)
revenue = models.IntegerField()
Как выглядит ваша модель? – Evert
Я предполагаю, что 'prepare_my_dict' должен быть' prepare_profile_dict'? – Evert
Вы можете, если вы измените функцию 'prepare_profile_dict', чтобы взять параметр' ** kwargs' в конце. –