У меня есть шаблон записи, он хорошо создается, но когда я открываю шаблон редактирования, я создаю новую запись.

У меня есть метод saveremission, где форма, которая находится в HTML, прекрасно его создает и загружает в БД.

def guardarremision(request):

if request.method == 'POST':
    fecharemi = request.POST['fecharemi']
    fechaenvio = request.POST['fechaenvio']
    clienteremi = request.POST['clienteremi']
    enviadoa = request.POST['enviadoa']
    fecharecibido = request.POST['fecharecibido']
    telefonoremi = request.POST['telefonoremi']
    formaenvio = request.POST['formaenvio']
    statusremi = request.POST['statusremi']
    preparadaremi = request.POST['preparadaremi']
    guiaremi = request.POST['guiaremi']

    remisiones = Remisiones(
        fecha = fecharemi,
        fecha_envio = fechaenvio,
        clientes_id = clienteremi,
        contacto = enviadoa,
        fecha_recibido = fecharecibido,
        telefono = telefonoremi,
        id_transporte_id = formaenvio,
        id_status = statusremi,
        elaborado = preparadaremi,
        guia = guiaremi
    )
    remisiones.save()


    return HttpResponse("Remision Creada")
else:
    return HttpResponse("Remision no puede ser creada")

Когда я перехожу к редактированию, у меня есть следующий метод, у меня есть другой шаблон с формой, которая вносит всю информацию через ID, но когда я сохраняю редакцию, она создает новую запись.

def editar_remision(request, id): remision = Remisiones.objects.get(pk=id)

return render(request, "editar_remision.html", {
        'remision' : remision
    })

Я пытаюсь загрузить редактируемый шаблон, но получаю ошибку.

Вместо сохранения используйте метод update

# fetch the queryset containing the object that has to be edited.
qs = Remisiones.objects.filter(id = id)

qs.update(
    fecha = fecharemi,
    fecha_envio = fechaenvio,
    clientes_id = clienteremi,
    contacto = enviadoa,
    fecha_recibido = fecharecibido,
    telefono = telefonoremi,
    id_transporte_id = formaenvio,
    id_status = statusremi,
    elaborado = preparadaremi,
    guia = guiaremi
)

Or

# fetch the object related to the passed id
obj = get_object_or_404(Remisiones, id = id)

obj.fecha = fecharemi,
obj.fecha_envio = fechaenvio,
obj.clientes_id = clienteremi,
obj.contacto = enviadoa,
obj.fecha_recibido = fecharecibido,
obj.telefono = telefonoremi,
obj.id_transporte_id = formaenvio,
obj.id_status = statusremi,
obj.elaborado = preparadaremi,
obj.guia = guiaremi

obj.save()

Или Если вы используете модель формы, передайте экземпляр в форму

# fetch the object related to the passed id
obj = get_object_or_404(Remisiones, id = id)

# pass the object as an instance in the form
form = RemisionesForm(request.POST or None, instance = obj)

# save the data from the form and redirect to detail_view
if form.is_valid():
    form.save()
    return HttpResponse("Referencia actualizada")
Вернуться на верх