Recientemente comencé a investigar un poco sobre cómo configurar las Notificaciones Push para un proyecto, lo primero que comencé a leer fué Google Firebase, luego de una horas de lectura decidí por cuestiones de tiempo buscar alguna librería de Django que me pudiera simplificar el trabajo y desarrollar esta funcionalidad lo más rápido posible.
Luego de investigar me dí cuenta que las librerías que habían no tenían una documentación muy extensa y con detalles como ésta por ejemplo: https://github.com/xtrinch/fcm-django, así que decidí desarrollar un código simple que se adaptara a las necesidades del proyecto. He de mencionar que tuve suerte de conseguir una web que simplifica muchísimo el trabajo con Firebase y decidí utilizarla https://app.onesignal.com/login
Ya puesto a trabajar el código que logré desarrollar quedó así:
Primero debes seguir las instrucciones de la web -> Instrucciones
Lo más importante es insertar correctamente la url y la ruta a los archivos de la app en el servidor de tu web.
El primer paso es insertar el código en la página donde necesites registrar a tus usarios para recibir las notificaciones, en mi caso particular sólo los usuarios registrados pueden ser agregados.
en la página inicial de los usuarios he colocado este código:
Django Sessions es una parte del framework que permite guardar los datos que necesitemos que estén disponibles para usarlos en cualquier vista, en cualquier momento, esto dependerá del diseño de tu aplicación.
Primero asegúrate de:
Que está activado en el middleware en el archivo settings:
django.contrib.sessions.middleware.SessionMiddleware
Que tienes instalado:
‘django.contrib.sessions’ en Settings I
NSTALLED
A
PPS.
Luego supongamos el caso que quieres guardar los datos de un formulario en una variable de sesión.
Primero extraes los datos del POST:
if request.method =='POST':
form = FormularioCreacionPedido(request.POST)
if form.is_valid():
En este caso particular agrego el id del usuario a los datos despues de extraer los datos del post:
form.cliente = Profile.objects.get(pk=request.user.id)
cleaned= form.cleaned_data
Luego debemos transformar los datos del formulario en formato json ya que las variables de sesión en Django no permiten guardar objetos:
json_form = json.dumps(cleaned, indent=4, sort_keys=True, default=str)
Y por último añadimos los datos con la key ‘pedido’ (puedes usar cualquiera) dentro de la variable de sesión.
request.session['pedido'] = json_form
Esta línea de código es la que crea la sesión.
Por defecto cuando creas una variable de sesión, Django crea un registro en una tabla que se llama django_session
Así los datos ya quedan disponibles para usarlos en cualquier vista.
Para extraer los datos debes hacer lo contrario:
extraer_datos
= json.loads(request.session.get('
pedido
', ''))
Luego cuando ya no necesites los datos …
Hace unos días decidí cambiar la extensión del dominio de mi web por diversas razones, como tengo poco tiempo con esta web y no tengo muchas redirecciones ni mucho tráfico las consecuencias de cambiarlo son pocas, sería diferente si en tu caso las condiciones son contrarias a las mías. De ser así, puedes buscar tutoriales sobre cómo proceder en estos casos.
Mi antigüo dominio era un ".tech" y decidí cambiarlo a ".es"
Para la instalación de los certificados he utilizado Certbot, por lo tanto el tutorial es para todos aquellos lectores que hayan creado su certificado en esa web.
Primero debes crear una redirección en tu antiguo dominio.
En mi caso lo he hecho con ovh: https://docs.ovh.com/es/domains/redireccion-dominio/
Debes cambiar el ServerName del virtualhost en el servidor donde tienes tu web por el nuevo dominio:
<VirtualHost *:80>
ServerName www.tunuevodimino.com
ServerAdmin webmaster@example.com
Para hacer los cambios en el certificado los virtualhosts deben estar activos (sudo a2ensite), de lo contrario mostrará el siguiente error:
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.
Ask for help or search for solutions at https://community.letsencrypt.org. …