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
):
UserModel
(creator
,last_modifier
)DateModel
(date_create
,date_last_modify
)StatusModel
(status
)OrderedModel
(ordering
)SEOModel
(meta_description
,page_title
,meta_keywords
)CleanModel
(sovrascive.save()
)
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…