Копирование значений из словаря в объект в Python - PullRequest
0 голосов
/ 23 октября 2009

У меня есть словарь, который я хотел бы перебрать и скопировать пары ключ-значение в объект в Python. Словарь - это POST, а объект - это модель (в Django, возможно, у Django есть лучший способ сделать это).

В PHP я мог бы использовать переменные:

foreach($post as $key => $value) {
    $my_model->$key = $value;
}

И в Javascript я мог обработать объект с помощью присвоения массивов:

for(var key in post) {
    my_model[key] = post[key];
}

Однако я не могу сделать это в Python. Единственный способ, который я видел, это использование свойства objects __dict__, и оно кажется немного грязным. Плюс это может вызвать KeyErrors.

Ответы [ 2 ]

5 голосов
/ 23 октября 2009
for key, value in post.iteritems():
    setattr(my_model, key, value)
4 голосов
/ 23 октября 2009

Вы можете использовать setattr, но это, вероятно, неправильный способ сделать это в вашем контексте. Сначала вы должны посмотреть документацию Django ModelForms .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...