Solución | tls: handshake failure al renovar certificado SSL Let’s Encrypt con Cloudflare

Si al entrar en tu aplicación web aparece un mensaje del estilo: [code language=»c»] IMPORTANT NOTES: – The following errors were reported by the server: Domain: test.com Type: tls Detail: remote error: tls: handshake failure To fix these errors, please … Continúa leyendo Solución | tls: handshake failure al renovar certificado SSL Let’s Encrypt con Cloudflare

El grave error del taxi en España

Escribo estas líneas tras los sucesos colaterales a la huelga de taxistas acontecidos en ciudades de toda España. Me refiero a las agresiones generalizadas a conductores y vehículos que son, desde mi punto de vista, intolerables y un gran error que pienso, va a terminar de ahogar al sector del taxi. Este sector ya perdió buena parte de mi respeto cuando prendieron fuego a nueve coches de Cabify durante la feria de Sevilla del 2017, pero es que ahora siento que la situación se les ha ido totalmente de las manos a causa de una mala gestión y una falta … Continúa leyendo El grave error del taxi en España

Archivos en MEDIA Django 1.11+ privados (requerir autenticación)

A menudo querremos ofrecer archivos privados en nuestra aplicación Django. La solución más sencilla a esta función es hacer una redirección vía regex a una función que lleve el decorador require_login, de la librería de Django. Dicha redirección deberá ser incluida en … Continúa leyendo Archivos en MEDIA Django 1.11+ privados (requerir autenticación)

Modificar plantilla de Administración en Django 1.11 + (1.8+)

El siguiente snippet pretende ilustrar de forma directa y sencilla cómo funciona el sistema de plantillas que Django incorpora desde la versión 1.8, aplicado a la sobre-escritura de la plantilla de administración. Para detalles técnicos está la fabula documentación de … Continúa leyendo Modificar plantilla de Administración en Django 1.11 + (1.8+)

Obtener coordenadas en un plano al hacer clic sobre él | Unity 5.6+

El siguiente snippet pretende ilustrar cómo se pueden obtener las coordenadas del mundo real al realizar un clic sobre la pantalla. Es válido para, al menos, las versiones de Unity 5.6 y superiores y está escrito en C#. Cuando el usuario realiza una pulsación sobre la pantalla es, a priori, imposible determinar las coordenadas espaciales del punto donde pretendía pulsar, ya que para lograr esto se necesita una referencia. Es como si señaláramos a un cielo estrellado y dijéramos… ¡quiero las coordenadas de ese punto! Bien, ¿pero con respecto a qué? En primer lugar debemos crear una referencia; en concreto un … Continúa leyendo Obtener coordenadas en un plano al hacer clic sobre él | Unity 5.6+

Registro de usuario en Django Rest Framework

Mi solución de registro de usuarios a través de una API rest. No he encontrado ejemplos completos en ninguna parte, y este código bien pudiera no ser óptimo. [code language=»python»] #serializers.py class UserViewSet(viewsets.ModelViewSet): """ A viewset that provides the standard actions """ queryset = User.objects.all() serializer_class = UserSerializer permission_classes = (AllowAny, ) def create(self, request, *args, **kwargs): """ http POST 127.0.0.1:8000/users/ By default asks for permission. :param request: :return: """ serializer = UserSerializer(data=request.data) if serializer.is_valid(): user = serializer.create(validated_data=request.data) #serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) [/code] [code language=»python»] #views.py class UserSerializer(serializers.ModelSerializer): class Meta: """ Returns all the Avatars id … Continúa leyendo Registro de usuario en Django Rest Framework

Contraseñas almacenadas en texto plano en Django Admin

Al configurar la interfaz de administración de nuestro usuario, sea personalizado o no, debemos heredar de la clase. UserAdmin Si simplemente implementamos la administración con una linea como la siguiente: [code language=»python»] admin.site.register(User, CustomUserAdmin) [/code] Al editar un nuevo usuario el sistema de cifrado de Django no procesará la petición y, por lo tanto, la contraseña quedará almacenada en texto plano en nuestra base de datos. Contraseña que, además, no servirá para autenticar al usuario ya que Django tratará de decodificar la contraseña que ya de por sí está decodificada en la base de datos para compararla con la introducida … Continúa leyendo Contraseñas almacenadas en texto plano en Django Admin

Fecha de creación y edición automáticas en Django

En Django la fecha de creación y modificación no se añade por defecto a nuestros modelos, como sí ocurre en otros frameworks como Ruby On Rails. La forma más elegante de añadir esta funcionalidad a tus modelos es crear una clase base que herede de models.Model y luego hacer que todos tus modelos hereden de la misma. [code language=»python»] class BaseModel(models.Model): created_date = models.DateTimeField(_(‘Date created’), auto_now_add=True) modified_date = models.DateTimeField(_(‘Date modified’), auto_now=True) class Meta: abstract = True [/code] El resto de nuestros modelos donde queramos tener las fechas de creación y actualización automáticas deberán ser del tipo: [code language=»python»] class AccountType(BaseModel): name = … Continúa leyendo Fecha de creación y edición automáticas en Django