Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

314
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!