Comme le demande le titre, pourquoi les gars de Django ont-ils décidé d'implémenter l'objet request.POST avec un querydict (ce qui, bien sûr, rend le tout immuable) ?
Je sais que tu peux mutifier en faisant une copie des données postales
post = request.POST.copy()
mais pourquoi faire cela ? Il serait sûrement plus simple de permettre à la chose d'être mutable de toute façon ? Ou bien est-il utilisé pour une autre raison qui pourrait poser problème ?
1 votes
Pourquoi voulez-vous qu'il soit mutable ? Vous pouvez prendre les données qui s'y trouvent et les utiliser/modifier dans votre vue. En y ajoutant des données, vous pouvez donner l'impression que
request.POST
a été soumis avec plus de données qu'il ne l'a été en réalité.11 votes
Ce n'est pas que je veulent qu'il soit mutable. Pas plus que, disons, je ne voudrais que la crème glacée soit froide. Dans le cas de la crème glacée cependant, si c'est n'est pas froid, il fond et ensuite tu te fais gronder pour avoir fait un gros gâchis. Mais avec l'objet request.POST... Je veux dire, si je dois bousiller mon code, je vais le bousiller. Je ne savais pas qu'il y avait une endémie de développeurs ajoutant des données aux objets POST et causant des problèmes, donc ça semble être une chose étrange à cibler pour "réparer".
0 votes
Bonne question ; je n'y ai jamais vraiment pensé.
1 votes
Cela m'est arrivé sporadiquement parce que mon client soumettait parfois des données JSON (mutables) et parfois des messages codés par formulaire URL (immuables).
2 votes
Pour les non-anglophones, "mutify" n'est pas un mot - la phrase correcte est "you can mutate it" ou "you can modify it". Il n'est pas non plus nécessaire de sexuer les développeurs - vous pouvez utiliser "Django team" ou "core devs" plutôt que "guys".