thx-core…

Db Mixins

Per semplificare la creazione dei nostri modelli e per renderla più omogenea sono stati creati dei mixin astratti (Meta:  abstract=True) che aggiungono campi e funzionalità (vedi in particolare CleanModel):

Esempio

class PriceList(CleanModel, UserModel, DateModel, StatusModel, OrderedModel):
    """
    Price List belongs to Stores, not to Suppliers. A supplier can have different PriceList for
    different Stores
    """
    objects = models.Manager()
    available = managers.AvailablePriceListManager()

    code = models.CharField(
        max_length=100,
        verbose_name=_('code'),
    )
    ...

Modelli

class thx.core.models.UserModel(*args, **kwargs)[sorgente]

UserModel è una classe abstract che estende django.db.models.Model.

Alla classe erede vengono aggiunti due attributi entrambi di tipo settings.AUTH_USER_MODEL:

Creator

indica l’utente che ha creato il record; una volta inserito non dovrà più essere aggiornato;

Last_modifier

indica l’ultimo utente in ordine temporale che ha modificato il record

Entrambe le FK sono definite on_delete=models.PROTECT

class thx.core.models.DateModel(*args, **kwargs)[sorgente]

DateModel è una classe abstract che estende django.db.models.Model.

Alla classe erede vengono aggiunti due attributi entrambi di tipo settings.DateTimeField:

Date_create

indica il datetime di creazione; viene valorizzato in modo automatico durante la creazione del record non verrà più aggiornato

Date_last_modify

indica il datetime di ultima modifica; viene valorizzato ad ogni salvataggio con il datetime corrente

class thx.core.models.StatusModel(*args, **kwargs)[sorgente]

StatusModel è una classe abstract che estende django.db.models.Model.

Alla classe erede viene aggiunto un attributo:

  • status: indica se un record è enable o disable e i valori sono limitati dal settings STATUS_CODES; viene utilizzato per la cancellazione logica di un record

class thx.core.models.OrderedModel(*args, **kwargs)[sorgente]

OrderedModel è una classe abstract che estende django.db.models.Model.

Alla classe erede viene aggiunto un attributo:

  • ordering: serve per dare una posizione fissa al record nell’ordine del queryset

class thx.core.models.SEOModel(*args, **kwargs)[sorgente]

SEOModel è una classe abstract che estende django.db.models.Model.

Alla classe erede vengono aggiunti tre attributi che possono essere utilizzati per il SEO

class thx.core.models.CleanModel(*args, **kwargs)[sorgente]

CleanModel è una classe abstract che estende django.db.models.Model.

viene ridefinita la funzione “save” nella quale viene richiamata la full_clean (chiama tutte le clean() in cascata) per validare gli attributi del record prima della “save” effettiva

save(*args, **kwargs)[sorgente]

Save the current instance. Override this in a subclass if you want to control the saving process.

The “force_insert” and “force_update” parameters can be used to insist that the «save» must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.

DevEmailBackend

Chiarire lo scopo…

class thx.core.mail.backends.DevEmailBackend(host=None, port=None, username=None, password=None, use_tls=None, fail_silently=False, use_ssl=None, timeout=None, ssl_keyfile=None, ssl_certfile=None, **kwargs)[sorgente]

Questo Backend permette di…