Browse Source

Fix ValueError in audiencia form and AttributeError on HEAD requests

- audiencia/forms.py: also catch ValueError when querying MateriaLegislativa
  by numero, so a non-numeric input (e.g. '36  e 61') surfaces as a form
  validation error instead of an unhandled 500.
- utils.py: MultiFormatOutputMixin.render_to_response was doing
  getattr(request, request.method) which fails for HEAD requests because
  Django exposes request.GET/POST but not request.HEAD; remap HEAD → GET.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.1.x
Edward Ribeiro 2 weeks ago
parent
commit
deee281954
  1. 2
      sapl/audiencia/forms.py
  2. 5
      sapl/utils.py

2
sapl/audiencia/forms.py

@ -115,7 +115,7 @@ class AudienciaForm(FileFieldCheckMixin, forms.ModelForm):
numero=materia, numero=materia,
ano=ano_materia, ano=ano_materia,
tipo=tipo_materia) tipo=tipo_materia)
except ObjectDoesNotExist: except (ObjectDoesNotExist, ValueError):
msg = _('A matéria %s%s/%s não existe no cadastro' msg = _('A matéria %s%s/%s não existe no cadastro'
' de matérias legislativas.' % (tipo_materia, materia, ano_materia)) ' de matérias legislativas.' % (tipo_materia, materia, ano_materia))
self.logger.warning( self.logger.warning(

5
sapl/utils.py

@ -1395,8 +1395,9 @@ class MultiFormatOutputMixin:
return {fmt: fields for fmt in self.formats_impl} return {fmt: fields for fmt in self.formats_impl}
def render_to_response(self, context, **response_kwargs): def render_to_response(self, context, **response_kwargs):
format_result = getattr(self.request, self.request.method).get( # HEAD shares query params with GET; Django has no request.HEAD attribute.
'format', None) _method = 'GET' if self.request.method == 'HEAD' else self.request.method
format_result = getattr(self.request, _method).get('format', None)
if format_result: if format_result:
if format_result not in self.formats_impl: if format_result not in self.formats_impl:

Loading…
Cancel
Save