Hola:
Necesito enviar los datos de una plantilla hacia la vista genérica UpdateView haciendo uso de javascript o del método POST. Django sends me an error: "Generic detail view
MatterUpdateView must be called with either an object pk or a slug."
Creo que el problema existe porque el método as_view() no recibe los datos correctamente.
Code:
HTML
<form id="form-edit" action="/manage_p1/update/" method="get" >
<input id="input-pk" type="hidden" value="0" name="pk">
</form>
JS
$('.icon-edit').click( function() {
$object_id = $(this).parents().eq(0).attr('id');
$('#form-edit #input-pk').attr('value', $object_id);
$('#form-edit').submit();
})
URL.PY
...
url(r'^manage_p1/update/', MatterUpdateView.as_view()),
...
Conozco la solución que aparece en la documentación de django, pero esta no resuelve el problema. En Gjango 1.4.X yo redefino la función "dispatch" para darle solución, pero la misma solución no funciona para el 1.5.
Ejemplo de la solución:
class MatterUpdateView( UpdateView ):
template_name = 'object_add.html'
success_url = '/manage_p1/list/'
model = Matter
form_class = MatterForm
def dispatch( self, request, *args, **kwargs ):
if not kwargs :
kwargs['pk'] = request.GET.get('pk', '')
if not bool( kwargs['pk'] ):
kwargs['pk'] = request.POST.get('pk', '')
Me he leido la documentación del 1.5 y los cambios realizados, y no veo el porqué no funciona igual que en el 1.4.X.
Si alguien conoce alguna posible solución le agradecería que me respondiese, estoy migrando un proyecto, esta situación me tiene estancado.
Saludos cordiales a todo el grupo.