我对 django (1.8) 比较陌生,并且已经阅读过这个问题,所有这些都指向根据这个链接覆盖 save_formset 函数
已添加到旧线程(Django admin - 如何保存内联?),但希望作为单独的线程提高以获得更好的可见性,除此之外,这已经得到了回答。
下面的功能适用于我在保存表单之前尝试修改表单,即将审计字段(创建/修改)更新为 USER 并将“enum_value_en”属性小写。当用户仅输入 1 个条目时,所有工作都有效,但当添加更多条目时,它会使用相同的值更新所有条目(即数据库中的“enum_value_en”。
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()
前任。
如果条目是“a”和“b”,则两个记录上的小写属性都设置为“b”。
附言。如果有人可以围绕他们的建议提供一些评论,以便我能够理解每一行代码,我将不胜感激。
最欣赏。