BaseModel
BaseModel es el modelo padre de tipo Abstracto, tiene una herencia
de models.Model
, es decir:
from django.db import models
class BaseModel(models.Model):
class Meta:
abstract = True
Aquí es donde se han definido las características principales de Django Automatic CRUD, es el enlace con los modelos ya que, a través de la herencia, todo modelo obtendrá los siguientes campos:
id = models.AutoField(primary_key = True)
model_state = models.BooleanField(default = True)
date_created = models.DateTimeField('Fecha de Creación', auto_now=False, auto_now_add=True)
date_modified = models.DateTimeField('Fecha de Modificación', auto_now=True, auto_now_add=False)
date_deleted = models.DateTimeField('Fecha de Eliminación', auto_now=True, auto_now_add=False)
model_state es usado dentro de Django Automatic CRUD para la
eliminación lógica.
Y los siguientes atributos:
all_cruds_types = True
normal_cruds = False
ajax_crud = False
server_side = False
exclude_model = False
login_required = False
permission_required = ()
model_permissions = False
default_permissions = False
exclude_fields = ['date_created','date_modified','date_deleted','model_state']
success_create_message = "registrado correctamente!"
success_update_message = "actualizado correctamente!"
success_delete_message = "eliminado correctamente!"
error_create_message = "no se ha podido registrar!"
error_update_message = "no se ha podido actualizar!"
non_found_message = "No se ha encontrado un registro con estos datos!"
create_template = None
update_template = None
list_template = None
detail_template = None
Atributos de modelos que hereden de BaseModel
all_cruds_types - si su valor es
True
generará CRUDS de tipo: Normales y AJAX, enFalse
no generará ningún CRUD.normal_cruds - si allcruds_types_ es
True
, el valor de este campo no será tomado en cuenta, si allcruds_types_ esFalse
y este campo esTrue
, generará CRUDS de tipoNormal
.ajax_crud - si allcruds_types_ es
True
, el valor de este campo no será tomado en cuenta, si allcruds_types_ esFalse
y este campo esTrue
, generará CRUDS de tipoAJAX
.server_side - si su valor es
True
se realizará la paginación del lado del servidor, esto es válido sólo para CRUDS de tipo AJAX, retornará la siguiente estructura:{ 'length': # número de registros, 'objects': # lista de datos por página }
exclude_model - si su valor es
True
, no se generarán CRUDS para el modelo, aún cuando allcruds_types_ seaTrue
.login_required - si su valor es
True
, solicitará que un quien realice la petición haya iniciado sesión. Se recomiendo realizar unlogin(user)
de Django en la implementación de su sistema de Login.permission_required - tupla de permisos a solicitarse para un usuario que realice la petición a cualquier ruta de Django Automatic CRUD sólo si modelpermission_ es
True
.model_permissions - si su valor es
True
, solicitará permisos para el usuario que realice la petición.default_permissions - si su valor es
True
, los permisos a solicitar serán los básicos de Django, es decir, add,change,view,delete.exclude_fields - lista de campos excluidos, estos campos no serán tomados en cuenta para listar, editar, crear o cuando se obtenga el detalle de un registro. Por defecto los campos excluidos son los campos:
date_created,date_modified,date_deleted,model_state
.success_create_message - mensaje por defecto mostrado cuando se realiza un nuevo registro del modelo. Este campo es concatenado con el nombre del modelo, es decir:
{model.__name__} success_create_message
, por ejemplo:Persona registrada correctamente
. Válido sólo para CRUDS AJAX.success_update_message - mensaje por defecto mostrado cuando se realiza una edición de un registro del modelo. Este campo es concatenado con el nombre del modelo, al igual que successcreate_message_. Válido sólo para CRUDS AJAX.
success_delete_message - mensaje por defecto mostrado cuando se realiza una eliminación de un registro del modelo, ya sea eliminación lógica o directa. Este campo es concatenado con el nombre del modelo, al igual que successcreate_message_. Válido sólo para CRUDS AJAX.
error_create_message - mensaje por defecto mostrado cuando ocurre un error al realizarse un nuevo registro del modelo. Este campo es concatenado con el nombre del modelo, al igual que successcreate_message_. Válido sólo para CRUDS AJAX.
error_update_message - mensaje por defecto mostrado cuando ocurre un error al realizarse una edición de un registro del modelo. Este campo es concatenado con el nombre del modelo, al igual que successcreate_message_. Válido sólo para CRUDS AJAX.
non_found_message - mensaje por defecto mostrado cuando no se encuentra un obtjeto solicitado. Válido sólo para CRUDS AJAX.
create_template - nombre de template de creación para los CRUDS Normales del modelo. Por defecto el sistema solicita un template llamado
{model.__name__}_create.html
.update_template - nombre de template de edición para los CRUDS Normales del modelo. Por defecto el sistema solicita un template llamado
{model.__name__}_update.html
.list_template - nombre de template de listado para los CRUDS Normales del modelo. Por defecto el sistema solicita un template llamado
{model.__name__}_list.html
.detail_template - nombre de template de detalle para los CRUDS Normales del modelo. Por defecto el sistema solicita un template llamado
{model.__name__}_detail.html
.
NOTA
El nombre solicitado de forma automática por los templates para CRUDS Normales son generados por una función llamada build_template_name, puedes encontrar información en el apartado de Funciones Extra - build_template_name