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: 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 por el usuario. Por suerte … 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. El resto de nuestros modelos donde queramos tener las fechas de creación y actualización automáticas deberán ser del tipo: Continúa leyendo Fecha de creación y edición automáticas en Django

Enviar archivos multiform | Django Rest Framework

Creé este snippet para un proyecto en el que necesitaba enviar audio a un servidor vía API REST empleando el formato multipart / form data. views.py En el archivo de vistas se encuentra la clase AnswerCreate, que no se encarga ni más ni menos que de crear respuestas de un examen y redirigirlas para almacenarlas debidamente en la base de datos. Dicha clase hereda de CreateAPIView, una clase genérica de DRF sobre la cuál puedes leer aquí, aunque resumiento estipula que sólo podrá ser usada para crear (ni actualizar, ni listar, etc). En nuestro queryset tenemos todas las respuestas actualmente almacenadas en la BD, … Continúa leyendo Enviar archivos multiform | Django Rest Framework

Obtener link de un ImageField en Django Rest Framework

ImageField difiere de FileField en cuanto a que el método .link no está disponible. Enviar vía DRF (Django Rest Framework) el link a una imagen no es un proceso “trivial”. Mi implementación se basa en usar Serializer Method Field. El código que sigue creo que es bastante esclarecedor: serializers.py models.py Aun así, es posible que exista una forma más óptima de llevar a cabo este proceso. Si la conoces no dudes en escribir un comentario o ponerte en contacto conmigo. Continúa leyendo Obtener link de un ImageField en Django Rest Framework

Fecha por defecto en modelo Django 1.11

Existen dos formas de incluir una fecha por defecto en Django. La primera, que había estado empleando en versiones del framework anteriores sería la siguiente: Sin embargo la forma óptima de establecer esta fecha por defecto es empleando el módulo de Django timezone: El motivo tiene que ver con el sistema de zonas horarias que viene por defecto activado en Django. Si se emplea la primera opción, tu aplicación no operará de forma correcta cuando se trate de fechas en distintas partes del mundo o del año (cambios anuales). Continúa leyendo Fecha por defecto en modelo Django 1.11

Don’t be evil

the google guys say life’s more than just the money do good and do well ruthless people say “don’t be evil” is naive greed obscures vision gold rush in china civil rights violations rationalizing not conventional? don’t intend to become so? re-evaluate no more censorship part of repressive program hong kong redirect back to core values principled approach yields trust trust is everything net neutrality all bits created equal except wireless “no direct access” warrantless wiretapping more transparency born into bondage idealism disrupts splinter in your mind a bit uncharted trying to figure it out positive impact act honorably do … Continúa leyendo Don’t be evil

Configuración rápida mysql Django para Ubuntu 16 / 14

Enlazar mysql con Django puede dar más de un quebradero de cabeza si no se sigue un orden secuencial de instalación de paquetes. En primer lugar, asegúrate de instalar un servidor de mysql en tu servidor o equipo de desarrollo. Instala tambén libmysqlclient-dev, necesario para conectar python con mysql. Ahora instala mediante pip o tu gestor de paquetes python la librería mysqlclient. A continuación entra en tu proyecto Django y abre el archivo settings.py. En la sección DATABASES, introduce el siguiente fragmento de código: Por último, crea un archivo con nombre db.cnf en el directorio raíz de tu aplicación Django, y copia el siguiente texto, sustituyendo las … Continúa leyendo Configuración rápida mysql Django para Ubuntu 16 / 14

Forzar conexiones HTTPS en WordPress (sin usar plugins)

Si ya añadiste el prefijo https en las opciones generales de tu wordpress pero aun así algunas páginas se resisten al cambio, puedes modificar el archivo .htaccess (directorio raíz de WordPress) con el siguiente código: Si en tu archivo .htaccess ya tenías algunas reglas, simplemente déjalas bajo las tres nuevas. Por ejemplo, mi .htaccess quedó así: Continúa leyendo Forzar conexiones HTTPS en WordPress (sin usar plugins)