def perform_create(self, serializer): serializer.save() if serializer.context['request'].GET.get('updateNumeroCofrade', None): numeroCofrade = 1 for cofrade in Cofrade.objects(baja__exists=False).order_by('numeroOrden'): cofrade.numeroCofrade = numeroCofrade numeroCofrade += 1 cofrade.save()
def calles(request): calleParam = request.GET.get('calle', None) calles = Cofrade.objects.distinct("datosPersonales.direccion.calle") if calleParam: calles = [aux for aux in calles if calleParam.lower() in aux.lower()] direcciones = [] for calle in calles: direccion = {} cofrade = Cofrade.objects(datosPersonales__direccion__calle__iexact=calle)[0] direccion['calle'] = calle direccion['municipio'] = cofrade.datosPersonales.direccion.municipio direccion['cp'] = cofrade.datosPersonales.direccion.cp direccion['provincia'] = cofrade.datosPersonales.direccion.provincia direcciones.append(direccion) return HttpResponse(json.dumps(direcciones), content_type="application/json")
def get_queryset(self): queryset = Cofrade.objects(baja__exists='Bajas' in self.request.path) nombre = self.request.query_params.get('nombre', None) numeroOrden = self.request.query_params.get('numeroOrden', None) if nombre: for term in nombre.split(): queryset = queryset.filter(Q(datosPersonales__nombre__icontains=term) | Q(datosPersonales__apellido1__icontains=term) | Q(datosPersonales__apellido2__icontains=term)).order_by('numeroOrden') elif numeroOrden: queryset = queryset.filter(Q(numeroOrden=numeroOrden)).order_by('numeroOrden') return queryset.only('numeroOrden', 'datosPersonales.nombre', 'datosPersonales.apellido1', 'datosPersonales.apellido2', 'datosPersonales.direccion.calle', 'datosPersonales.direccion.municipio', 'datosPersonales.direccion.provincia', 'baja').order_by('numeroOrden')
def retrieve(self, request, id=None, **kwargs): queryset = Cofrade.objects(id=id) serializer = CofradeSerializer(queryset[0]) return Response(serializer.data)