Je suis relativement nouveau à django (1,8) et ont lu autour de cette question que tous les points à Outrepasser la fonction save_formset selon ce lienDjango admin - sauver inline prépondérants save_formset
ajoutés à votre panier un ancien fil (Django admin - how to save inlines?), mais voulait augmenter comme un fil séparé pour obtenir une meilleure visibilité et d'ailleurs cela a déjà été répondu.
La fonction ci-dessous fonctionne lorsque j'essaie de modifier le formulaire avant de l'enregistrer, c'est-à-dire mettre à jour les champs d'audit (créés/modifiés) vers USER et minuscules l'attribut 'enum_value_en'. Tout fonctionne lorsque l'utilisateur entre seulement 1 entrée, mais en ajoutant plus il met à jour toutes les entrées avec la même valeur (par exemple « enum_value_en » dans la base de données.
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False) # gets instance from memory and add to it before saving it
for obj in formset.deleted_objects:
obj.delete()
for instance in instances:
for form in formset: # cleaned_data is only available on the form, so you have to iterate over formset
instance.modified_by = request.user
instance.created_by = request.user
instance.lowercase_enum_value_en = form.cleaned_data['enum_value_en'].lower()
instance.save()
formset.save_m2m()
Ex.
si les entrées sont « un '& 'b', les attributs minuscules sont mis à 'b' sur les deux dossiers.
PS. est-ce aussi reconnaissant si quelqu'un pouvait o Quelques commentaires sur leurs suggestions afin que je puisse comprendre chaque ligne de code.
Le plus apprécié.
Merci Alasdair pour la solution et l'explication - cela a fonctionné. J'ai passé énormément de temps à essayer de résoudre ce problème. Frustrant dans notre environnement de développement, nous utilisons un superviseur pour redémarrer les services et nous essayons d'utiliser un débogueur interactif comme Werkzeug, mais nous ne le pouvons pas. ** Pouvez-vous suggérer quelque chose **. Encore merci. –
Désolé, je n'ai aucune suggestion sur les débogueurs interactifs. – Alasdair
Merci tout de même. –