Vim como editor para Python y Django


En APSL no hay un editor de texto preferido para trabajar con Python y Django. Al final estamos trabajando con texto, de modo que mientras el editor cumpla con unos requisitos mínimos personalmente no tengo nada que objetar a que cada uno utilice el editor que vle dé la gana: netbeans, vim, geany, kate, gedit, ...

A partir de aquí ya entran las preferencias de cada uno. Por mi parte prefiero ...

Leer mas

Guardar el usuario que crea un objeto desde un CreateView


Supongamos que tenemos un formulario asociado a un modelo que tiene una FK hacia User. El formulario de entrada normalmente no contendrá ningún desplegable para seleccionar el usuario, sinó que lo que queremos es que al guardar automáticamente se guarde en el objeto creado por el formulario la referencia hacia el usuario que lo creó.

Esto lo podemos hacer fácilmente sobreescribiendo el método form_valid de nuestra class, sería una cosa ...

Leer mas

Django class based views - Epílogo


El mundo de las class based views como se puede ver da para mucho. La posibilidad de sobrescribir funciones, cambiar parámetros e ir combinando mixins hasta obtener la funcionalidad que necesitamos nos permite reutilizar mucho codigo y de manera elegante.

En este último artículo de las serie veremos alguna de las situaciones más habituales en las que nos podemos encontrar y cómo se resuelven.

 

El formulario por defecto no ...

Leer mas

Django class based views - Listados


En este sexta entrega veremos cómo podemos mostrar listad de objetos, algo que normalmente va muy ligado al flujo de trabajo asociado al CRUD.

Para mostrar listados (paginados o no) Django nos proporciona la clase ListView que podemos encontrar en django.views.generic.list. Esta clase és hija de MultipleObjectTemplateResponseMixin y de BaseListView. Esta última clase es la que hace el grueso del trabajo, ya que es hija de MultipleObjectMixin ...

Leer mas

Django Class Based Views - CRUD


En esta qunta parte veremos cómo podemos gestoionar todo lo relacionado con un mantenimiento, el famoso CRUD (Create, Retrieve, Update, Delete). La parte de Retrieve ya la hemos visto, pero volveremos a ella para que nos quede un ejemplo completo. Partiremos del sigueinte modelo:

class Sample(models.Model):
    """this is just a sample model"""

    slug = models.SlugField(max_length=50, unique=True)
    name = models.CharField(max_length=100)
    ammount = models.IntegerField()
    comments ...
Leer mas