Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

336
Vistas
¿Cómo puede usar un request.user en forma de modelo en django?

Quiero poder usar request.user en el formulario de modelo init. Aquí está mi vista:

 def create(request, pk): if request.method == 'POST': form = CreateForm(request.POST) if form.is_valid(): object = form.save() object.save() return render(request, 'going_create.html', {'object':object}) else: form = CreateForm() return render(request, 'being_create.html', {'form':form})

Básicamente, necesito request.user para completar previamente un campo de formulario de django. Aquí está mi formulario:

 class CreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): self.request = kwargs.pop('request') super(CreateForm, self).__init__(*args, **kwargs) self.fields['first_name'].initial = self.request.user.first_name class Meta: model = creater fields = ( 'first_name', )

Además, hay form = CreateForm(request.POST) if request.method == 'POST', y form = CreateForm() cuando más. Entonces, como no estoy familiarizado con el uso de una vista de función, espero que me diga dónde necesito agregar el código para poder usar request.user para completar un campo de django. Gracias, y por favor deje cualquier pregunta que tenga.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Lo pasas a través de un parámetro:

 class CreateForm(forms.ModelForm): def __init__(self, *args , user=None , **kwargs): super(CreateForm, self).__init__(*args, **kwargs) if user is not None : self.fields['first_name'] .initial = user.first_name class Meta: model = creater fields = ( 'first_name', )

En la vista, construyes el formulario con:

 from django.contrib.auth.decorators import login_required @login_required def create(request, pk): if request.method == 'POST': form = CreateForm(request.POST , user=request.user ) if form.is_valid(): object = form.save() return render(request, 'going_create.html', {'object':object}) else: form = CreateForm( user=request.user ) return render(request, 'being_create.html', {'form':form})

Nota : en caso de una solicitud POST exitosa, debe realizar una redirect [Django-doc] para implementar el patrón Publicar/Redireccionar/Obtener [wiki] . Esto evita que realice la misma solicitud POST cuando el usuario actualiza el navegador.


Nota : puede limitar las vistas a una vista para usuarios autenticados con el decorador @login_required [Django-doc] .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda