Buscar este blog

lunes, 8 de julio de 2013

Contar resultado de consulta manytomany en Django template y views

Sacamos unos datos de la base de datos y uno de ellos tiene una relación many to many. ¿Cómo obtenemos el número de valores de esa entrada many to many?

models.py

class Persona(models.Model):
       nombre = ........................
       amigos = models.ManyToManyField(OtraTabla)

views.py
            consulta = Persona.objects.get(id=1)
            consulta.amigos.count() # Obtendremos el número de amigos: 0,1,2,3..... los que sean

archivo.html -> Template
            Suponiendo que se llame la variable consulta:
                     consulta.count # obtendremos el número de amigos: 0,1,2,3..... los que sean

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

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.

domingo, 7 de julio de 2013

Dónde se encuentra almacenado Django en Ubutnu


En el terminal

>>> ptyhon
>>> import django
>>> print django.__file__

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.

Usar reverse URL en Django

La mejor forma de trabajar en Django con URLs es usar reverse. De esta forma, cualquier modificación en el archivo urls.py no afectará en nada a nuestros ficheros views.py u otros que tengamos.

Veamos cómo hacerlo con un ejemplo muy simple, básico y sin sentido. Lo esencial es captar la idea:

urls.py


from django.conf.urls import patterns, url

urlpatterns = patterns(' ',
     url(r'^inicio/$, 'views.pagina_inicio', name='nombre_inicio')


views.py


.......

def pagina_inicio(request):
     return reverse('nombre_inicio') # Esto creará la url /inicio/

archivo.html


......
{% url 'nombre_inicio' %}
......

Teniendo esto en mente podemos ampliarlo en caso de tener variables que cambian en las URLs, como por ejemplo la siguiente URL:
                               
                                                 mi-sitio.com/modificar_usuario/3
urls.py

from django.conf.urls import patterns, url

urlpatterns = patterns(' ',
     url(r'^ /modificar_usuario/(?P\d+)/$, 'views.modificar', name='modificar_un_usuario')



views.py


.......

def modificar (request, id_usuario):
     return reverse('modificar_un_usuario', args=(id_usuario,)) # Esto creará la url /modificar_usuario/3

archivo.html


......
{% url 'modificar_un_usuario' id_usuario %}

ó, si no pasamos la variable id_usuario y la ponemos directamente:

{% url 'modificar_un_usuario' 3 %}
......

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

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.

sábado, 6 de julio de 2013

Obtener valor largo del campo choices de models en Django

Podemos encontrarnos con el problema de como obtener la palabra que podamos leer en lugar de lo que guardamos en la base de datos.

El método para sacarlo sería usando get_NOMBRECAMPO_display(). En los siguientes pasos se resume todo:

  1. Hacemos nuestra consulta en la base de datos y la llamamos "consulta".
  2. Obtenemos el valor del campo choice en la forma legible: consulta.get_nombreCampo_display()

Aquí pongo un ejemplo:

models.py


class Tabla(models.Model):
     TIPO_ETAPAS_VIDA = (
              ('B', 'Bebe'),
              ('A', 'Adolescente'),
              ('Ad', 'Adulto'),
              ('V', 'Viejo'),
        )
        etapasVida = models.Charfield(max_length=2, choices=TIPO_ETAPAS_VIDA)

Suponemos que en la base de datos hemos almacenado lo siguiente:

ID     etapasVida
 1             A
 2             V
 3             B

Ahora en nuestra base de datos sólo se almacenará 'B' ó 'A' ó 'Ad' ó 'V' y para obtener el valor de Bebe, Adolescente, Adulto o Viejo al realizar una consulta tenemos que usar lo siguiente:

En views.py podemos sacar el valor largo de TIPO_ETAPAS_VIDA como sigue:

Consulta con varios resultados devueltos:
     obtener_etapas = Tabla.objects.all()

     for etapa in obtener_etapas:
          etapa.get_etapasVida_display()

   Resultado:
           Adolescente
           Viejo
           Bebe

Consulta con un solo valor devuelto
     obtener_etapas = Tabla.objects.get(id=1)

     etapa.get_etapasVida_display()

   Resultado:
           Adolescente

En templates podemos sacarlo igual. Supongo que le hemos pasado una etapa de la vida obtenida por ejemplo así: mi_etapa=Tabla.objects.get(id=1)

archivo.html


mi_etapa.etapasVida_display


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

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.

jueves, 4 de julio de 2013

Cambiar el nombre de la tienda Prestashop

¿Cómo cambiar el nombre de la tienda prestashop?

Entramos en el panel de administración de nuestra tienda:

  • 1. Ir a Preferencias > Contactos de la tienda
  • 2. Nos desplazamos hacía abajo hasta el apartado "Detalles de contacto"
  • 3. Se modifica el nombre de la tienda
También puedes modificar ahí el email, la dirección, el teléfono....

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

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.

Hacer que aparezca la parte izquierda en identificación/registro Prestashop

Abrimos global.css que se encuentra en Prestashop/themes/el_tema_que_tengais_activo/css/global.css

Buscamos la línea que ponga:
                       #authentication #left_column {display:none}

Y la modificamos
                       #authentication #left_column {display:block}

Y listo.

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

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.

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.