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

317
Vistas
Cómo mostrar los resultados de la consulta de formulario en un ListView

Creé un formulario donde los usuarios ingresarán un rango de fechas. Una vez enviado, debe devolver una lista de mi base de datos de personas cuyos cumpleaños están dentro de ese rango de fechas. Soy bastante nuevo en Django y lo he intentado pero no entiendo cómo pasar mi "start_date & end_date" como kwargs de mi formulario a ListView.

vistas.py:

 class BirthdaysRangeFormView(FormView): template_name = 'snippets/date_selection_form.html' form_class = datefilterform def get_form_kwargs(self): kwargs = super(BirthdaysRangeFormView, self).get_form_kwargs() kwargs ['request'] = self.request return kwargs def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['title'] = "Date Selection" context['header'] = "Please select date range" return context def form_valid(self, form): self.start_date = (form.cleaned_data['start_date'], People.next_birthday) self.end_date = (form.cleaned_data['end_date'], People.next_birthday) return self.redirect_to_results() def redirect_to_results(self): self.success_url = "dates:birthdays" return redirect( self.get_success_url(), ) class BirthdaysListView(BirthdaysRangeFormView, ListView): template_name = 'dates/birthdays.html', context_object_name = "person" person = True # queryset = People.objects.order_by('next_birthday') def get_queryset(self): test = ''

formularios.py:

 class datefilterform(forms.Form): model = People start_date = forms.DateField( input_formats=['%d/%m/%Y'], widget=DateTimePicker( options={"format": "DD/MM/YYYY", "pickTime": False}) ) end_date = forms.DateField( input_formats=['%d/%m/%Y'], widget=DateTimePicker( options={"format": "DD/MM/YYYY", "pickTime": False}) ) People.next_birthday = start_date People.next_birthday = end_date def __init__(self, *args, **kwargs): self.request = kwargs.pop('request') super(datefilterform, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_id = 'main_form' self.helper.form_class ='form-horizontal' self.helper.label_class = 'col-lg-3' self.helper.field_class = 'col-lg-8' self.helper.layout = Layout( 'start_date', 'end_date', FormActions( Submit('submit', 'Submit'), Button('cancel', 'Cancel', css_class='cancel') ) ) def clean(self): cleaned_data = super().clean() start_date = cleaned_data.get("start_date") end_date = cleaned_data.get("end_date") if not check_end_date(start_date, end_date): raise forms.ValidationError( "Incorrect Dates entered, End date must be after start date" )

He hecho ListViews simples antes, pero no entiendo cómo usar "solicitud" en vistas basadas en clases.

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

0

Simplemente puede acceder a self.request en sus vistas basadas en clases.

Más bien, siga el formato, de modo que pueda manejar las solicitudes POST y GET en la misma vista.

 class MyView(FormView): template_name = 'some_template.html' success_url = '...' form_class = MyForm def get(self, request, *args, **kwargs): pass def post(self, request, *args, **kwargs): pass def form_invalid(self, form, **kwargs): pass def form_valid(self, form, **kwargs): pass .....
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