Почему изменения не сохраняются при редактировании продукта Django?

Создал сайт с товарами. Мне нужно сделать окно для их редактирования на сайте, чтобы изменить производителя и другие характеристики. Это должно быть сделано во всплывающем окне. У меня отображаются данные, я их меняю, но при сохранении ничего не меняется. Как можно решить эту проблему

Мой vievs:

def parts(request):
added = ''
error = ''
PartAllView = Part.objects.order_by('-id')

if request.method == 'POST' and 'parts_add' in request.POST:
    form = PartForm(request.POST, request.FILES)
    if form.is_valid():
        form.save()
        added = 'Добавлено'
    else:
        error = 'Данная запчасть уже добавлена'

if request.method == 'POST' and 'parts_edit' in request.POST:
    PartPost = int(request.POST['parts_edit'])
    PartID = Part.objects.get(id=PartPost)
    if PartID:
        PartID.save()
        added = 'Запчасть успешно отредактирована'
    else:
        error = 'Ошибка редактирования'


form = PartForm()

data = {
    'added': added,
    'error': error,
    'form': form,
    'PartAllView': PartAllView,
}

return render(request, 'kross/parts.html', data)

Мой HTML:

{% if PartAllView %}
{% for el in PartAllView %}

<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="modal fade" id="partEdit{{ el.id }}">
  <div class="modal-dialog modal-dialog-centered text-center" role="document">
    <div class="modal-content modal-content-demo">
      <div class="modal-header">
        <h6 class="modal-title">Добавление запчасти</h6><button aria-label="Close" class="btn-close"
          data-bs-dismiss="modal"><span aria-hidden="true">&times;</span></button>
      </div>

      <div class="modal-body">
        <div class="row row-sm">
          <div class="col-lg-6">
            <div class="form-group">
              <input type="text" class="form-control" name="brand" value="{{ el.brand }}">
            </div>
          </div>
          <div class="col-lg-6">
            <div class="form-group">
              <input type="text" class="form-control" value="{{ el.number }}">
            </div>
          </div>
          <div class="col-lg-12">
            <div class="form-group">
              <input type="text" class="form-control" value="{{ el.name }}"><br>
              <input type="textarea" class="form-control" rows="2" value="{{ el.description }}">
            </div>
          </div>
        </div>
      {{ el.analog }}
...

Вы можете использовать updateView для редактирования существующих данных на вашем сайте, просто:

from django.views.generic.edit import UpdateView
From MyApp models import #Model

class editview(UpdateView):
    model = #Your Model You want to edit
    fields = [#Add the fields you want to edit]
    template_name = 'edit.html'
    success_url = ('Home')

В вашем шаблоне edit добавьте:

<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update">

Надеюсь, это поможет.

Вернуться на верх