J'écris une application Django qui remplit diverses fonctions, y compris l'insertion ou la mise à jour de nouveaux enregistrements dans la base de données via l'URL.Comment mettre à jour les membres d'un objet à l'aide d'un dict?
Ainsi, certaines applications internes envoient une demande à /import/?a=1&b=2&c=3
, par exemple. Dans la vue, je souhaite créer un nouvel objet, foo = Foo()
, et définir les membres de foo
sur les données du dictionnaire request.GET.
Voici ce que je fais maintenant:
- Demande envoyée à
/import/?a=1&b=2&c=3
- Voir crée nouvel objet:
foo = Foo()
- objet est mis à jour avec les données.
Voici ce que je suis arrivé jusqu'ici:
foo.a = request['a']
foo.b = request['b']
foo.c = request['c']
Évidemment, cela est fastidieux et source d'erreurs. Les données de l'URL ont exactement le même nom que les membres de l'objet. Il s'agit donc d'un mappage 1-à-1 simple.
Idéalement, je voudrais faire en mesure de faire quelque chose comme ceci:
foo = Foo()
foo.update(request.GET)
ou quelque chose à cet effet.
Merci!
La solution présentée par les fourmis fait ce que vous voulez, mais comment gérez la validation et la conversion type que vous? Ou ne sont pas d'inquiétude (je trouve cela difficile à croire). –
Ils ne sont pas concernés. Ceci est utilisé entièrement en interne, où les données sont insérées dans une base de données (avec validation) puis (ici) insérées dans une autre. –