Funciones Extra

get_model

def get_model(__app_name:str,__model_name:str) -> Instance:
    # return the model corresponding to the application name and model name sent
    return apps.get_model(app_label = __app_name,model_name = __model_name)
  • __app_name - Nombre de la aplicación donde está el modelo en cadena de texto

  • __model_name - Nombre del modelo en cadena de texto

Retorna el modelo en cuestión para el nombre de la aplicación y modelo indicados.

get_object

def get_object(model: Instance,pk: int):
    # return the record for a pk sended
    instance = model.objects.filter(id = pk,model_state = True).first()
    if instance:
        return instance
    return None
  • model - Modelo a realizar la consulta.

  • pk - ID de registro a buscar.

Retorna la instancia del modelo perteneciente al pk enviado.

get_model_fields_names

def get_model_fields_names(__model: Instance) -> List:
    # return a list of field names from a model
    return [name for name,_ in models.fields_for_model(__model).items()]
  • **__model** - Modelo del cual se desea obtener los nombres de sus campos.

Retorna una lista con los nombres de los campos del modelo enviado.

get_queryset

def get_queryset(__model:Instance) -> Dict:
    # returns all records in a dictionary for a model
    return __model.objects.all().values()
  • **__model** - Modelo del cual se desea obtener los nombres de sus campos.

Retorna todos los datos registrados en la base de datos para el modelo indicado. Esta función se utiliza en el Reporte en Excel generado automáticamente.

get_form

def get_form(form: DjangoForm,model: Instance) -> DjangoForm:
    """
    Return a Django Form for a model, also a Django Form can be indicated
    by default the Django Form will exclude the 'state' field from the model

    """


    if form is not None:
        return models.modelform_factory(model = model,form = form)
    else:
        return models.modelform_factory(model = model,exclude = ('model_state',))
  • model - Modelo en el cual se desea basar el Form de Django a crearse.

  • form - Form de Django opcional a utilizarse en la creación de un Form de Django basado en modelo.

Retorna un Form de Django basado en el modelo indicado. Opcionalmente recibe el parámetro form, el cuál se utilizará para generarlo el nuevo Form en caso se desee utilizar uno personalizado. Para que el Form se genere automáticamente sin necesidad de enviarle el parámetro form, este debe ser enviado como None.

build_template_name

def build_template_name(template_name: str,model: Instance,action:str) -> str:
    """
    Build template name with app label from model, model name and action(list,create,update,detail)

    """


    if template_name == None:
        template_name = '{0}/{1}_{2}.html'.format(
                                        model._meta.app_label,
                                        model._meta.object_name.lower(),
                                        action
                                    )
    return template_name
  • model - Modelo del cuál se desea generar los nombres de templates solicitados en CRUDS Normales.

  • template_name - Nombre del template a utilizarse en la vista de CRUDS Normales.