У меня есть шаблон записи, он хорошо создается, но когда я открываю шаблон редактирования, я создаю новую запись.
У меня есть метод 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")