Enviar parametro a una CreateView

709 views
Skip to first unread message

Mauricio Villa

unread,
Jul 11, 2017, 1:36:27 PM7/11/17
to Django-es
Hola, tengo una vista DetailView con su respectivo parametro id en la url y en el template tengo un link hacia una vista CreateView, mi pregunta es
¿Como puedo tomar ese parametro de la url y usarlo en la vista Create para guardarlo en la BD sin enviarlo al forms.py

Esta es la vista CreateView:

class ReferenciarSimpatizanteCreateView(CreateView):
model = Referencia
template_name = 'referido/form/form.html'
form_class = ReferidoForm
page_title = 'Referir Simpatizantes'


def get_context_data(self, **kwargs):
context = super(ReferenciarSimpatizanteCreateView, self).get_context_data(**kwargs)
context['page_title'] = self.page_title
return context

def get_success_url(self):
return reverse('simpatizante.refer.list')

carlos

unread,
Jul 11, 2017, 1:48:26 PM7/11/17
to djan...@googlegroups.com

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-unsubscribe@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
att.
Carlos Rocha

David Torres

unread,
Jul 11, 2017, 2:40:40 PM7/11/17
to djan...@googlegroups.com
Hola intenta con esto a mi me funcionó:

def post(self, request, *args, **kwargs):
      parametro= request.POST["parametro"]

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-unsubscribe@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Saludos cordiales,

Ing. David Torres V.
Analyst and 
Software Developer

Mauricio Villa

unread,
Jul 11, 2017, 3:12:07 PM7/11/17
to Django-es
Hola David, el parametro que le estoy pasando a la vista es una pk por medio de la url, como puedo tomar ese parametro y guardarlo en un campo del modelo con el metodo form_valid


El martes, 11 de julio de 2017, 13:40:40 (UTC-5), David Torres escribió:
Hola intenta con esto a mi me funcionó:

def post(self, request, *args, **kwargs):
      parametro= request.POST["parametro"]
El 11 de julio de 2017, 12:00, Mauricio Villa <mauro93...@gmail.com> escribió:
Hola, tengo una vista DetailView con su respectivo parametro id en la url y en el template tengo un link hacia una vista CreateView, mi pregunta es
¿Como puedo tomar ese parametro de la url y usarlo en la vista Create para guardarlo en la BD sin enviarlo al forms.py

Esta es la vista CreateView:

class ReferenciarSimpatizanteCreateView(CreateView):
model = Referencia
template_name = 'referido/form/form.html'
form_class = ReferidoForm
page_title = 'Referir Simpatizantes'


def get_context_data(self, **kwargs):
context = super(ReferenciarSimpatizanteCreateView, self).get_context_data(**kwargs)
context['page_title'] = self.page_title
return context

def get_success_url(self):
return reverse('simpatizante.refer.list')

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com

Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

David Torres

unread,
Jul 11, 2017, 3:31:44 PM7/11/17
to djan...@googlegroups.com
primer se podría obtener el valor de pk asil;

    form = self.form_class(request.POST)

luego se deberia validar a form para que se pueda validad:
    if form.is_valid():

luego guardar:
    result = self.form_valid(form)

y para guardar sería así

    result.save()


todo este a mi me funciono, espero que te sirva

Para anular la suscripción a este grupo, envíe un mensaje a django-es-unsubscribe@googlegroups.com

Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages