Я использую плагин jQuery (от elo80ka) для добавления и удаления строк из шаблона. У меня проблема в том, что когда я добавляю новые данные, все идет хорошо, и данные сохраняются. Но как только я пытаюсь удалить существующие, я получаю перенаправление без удаленных объектов. (как только я нажимаю удалить, встроенный удаляется, я проверял через инспектор)
class PlaceUpdateInline(InlineFormSetFactory):
model = AdditionalLoadingPlace
form_class = AdditionalLoadingPlaceInlineFormSet
factory_kwargs = {'extra': 0, 'max_num': 5,
'can_order': False, 'can_delete': True}
class PlaceUpdateView(LoginRequiredMixin, UpdateWithInlinesView):
model = Place
form_class = PlaceCreateForm
inlines = [PlaceUpdateInline]
def forms_valid(self, form, inlines):
form.instance.author = self.request.user
self.object = form.save(commit=False)
self.object.author = self.request.user
form.save(commit=True)
for inline in inlines:
objects = inline.save(commit=False)
for obj in inline.deleted_objects:
# never called
obj.delete()
for object in objects:
if object.place:
object.save()
return HttpResponseRedirect(self.get_success_url())
РЕДАКТИРОВАТЬ:
Итак, мой шаблон имеет этот пользовательский рендеринг каждого поля:
{{ inlines.0.management_form }}
{{ inlines.0.non_form_errors }}
{% for form in inlines.0 %}
<div class="inline {{ inlines.0.prefix }}">
{{ form.hidden_field.as_hidden }}
{{ form.place.errors }}
{{ form.place }}
{{ form.id }}
</div>
{% endfor %}
Но удаление работает, если я делаю это так:
{{ inlines.0.management_form }}
{{ inlines.0.non_form_errors }}
{% for form in inlines.0 %}
<div class="inline {{ inlines.0.prefix }}">
{{ form.as_p }}
</div>
{% endfor %}
Кажется, есть проблема с моими скрытыми полями (которые я обновляю с помощью jQuery позже, и я не ' не хочу показывать это пользователям)