Buscar este blog

Mostrando entradas con la etiqueta Django. Mostrar todas las entradas
Mostrando entradas con la etiqueta Django. Mostrar todas las entradas

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()