Buscar este blog

jueves, 4 de julio de 2013

Cambiar página de inicio de Prestashop

La página de inicio la podemos cambiar de la siguiente manera. En este ejemplo, lo que he hecho es cambiar la página de inicio por la de Identificación/registro, de forma que si el usuario no está identificado, de forma automática le lleve a la página de autenticación

Prestashop/controllers/front/IndexController.php


Justo después de esta línea:
 $this->context->smarty->assign('HOOK_HOME', Hook::exec('displayHome'));

Añadimos esto otro:

if ($this->context->customer->isLogged())
$this->setTemplate(_PS_THEME_DIR_.'index.tpl');
else{
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));
}


Encuentra otras soluciones en el nuevo blog ó descargate themes y módulos en www.softwild.es

Si necesitas ayuda para poner otra página como inicio, que comente y le explico.


Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.
Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.

viernes, 28 de junio de 2013

Modificar un campo en formularios al crearlos con modelForm

Problema: Hemos generado un formulario usando la propiedad modelForm de Django. Esto nos genera el formulario automáticamente, pero que ocurre cuando necesitamos cambiar algún elemento de un campo, esto es, help_text, mensajes de error, añadir una clase para usar con CSS.

Pues bien, la solución la tenemos en la función __init_ como sigue.

Añadir o borrar de una relación many to many Django

Ejemplo:

class Libro(models.Model):
     titulo = models.CharField(max_length=50)
     capitulo = models.ManyToManyField(Capitulo)

class Capitulo(models.Model):
     nombre = models.CharField(max_length=50)

Tanto para borrar como para insertar en many to many necesitamos obtener el objeto dónde lo vamos a insertar:

Poner comentarios en Django Template

{# comentamos una sola línea así #}
{% comment %}
commentamos varias lineas
de esta forma
{% endcomment %}

Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.
Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.

Como saber el tipo de dato de una variable en Template Django

¿Qué pasa cuando tenemos una variable en el template y necesitamos saber de que tipo es para hacer una cosa u otra? Queremos saber si es de tipo  por ejemplo.

Necesitamos crear un filtro, como viene aquí. Aunque claro, ahora vamos a poner otros filtros como sigue:

Acceder a elemento concreto de un diccionario en template django

La solución para ello es crear un filtro. ¿Cómo? Tenemos que crear un nuevo directorio mytemplatetags y los archivos __init__.py y mis_filtros.py como sigue:
  • Proyecto Django
    • my_app
      • models.py
      • views.py
      • mytemplatetags
        • __init__.py
        • mis_filtros.py
El archivo __init_.py se deja vacío En mis_filtros.py añadimos lo siguiente:

from django import template

register = template.Library()

@register.filter(name='indice')

def indice(dic, item):
     try:
          return dic[item]
     except:
          return None

Enlaces: Custom django filter tutorial

Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.
Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.

Acceder a clave externa desde Template Django

Situación: En nuestro archivo views.py hemos realizado una consulta para obtener todos los datos de una tabla que contiene una clave externa:
models.py


class MiTabla(models.Model):
     campo_mi_tabla_uno = models.CharField(max_length=3,null=True, blank=True)
     campo_mi_tabla_dos = models.ForeignKey(TablaAuxiliar) class TablaAuxiliar(models.Model):
     campo_tabla_auxiliar_uno = models.CharField(max_length=3,null=True, blank=True)

views.py


consulta = NombreTablaDB.objects.all()