Cosa fa questo codice (__init__, super())?

Stato
Discussione chiusa ad ulteriori risposte.

fabio_1

Utente Attivo
231
8
CPU
i5-6500
Scheda Madre
ASRock H170 Pro4S
HDD
Samsung 870QVO 1TB, Samsung 850EVO 250GB, HD Toshiba 2TB
RAM
Corsair DD4 2133 C13 2x4GB
GPU
Sapphire R9 380 4GB NITRO
Audio
Integrata + DAC Audioengine D1
Monitor
LG 24MB56HQ-B IPS
PSU
XFX 550 Black
Case
Corsair Spec-03
Periferiche
Casse Edifier R1800TIII
OS
Windows 10
Ho delle righe di codice che non so cosa facciano esattamente (trovate in un libro). Potrei anche contestualizzarle ma temo la cosa diventi più complicata. In caso vediamo, chiedete pure.

Python:
class MultilingualCharField(models.CharField):

    def __init__(self, verbose_name=None, **kwargs):
        self._blank = kwargs.get('blank', False)
        self._editable = kwargs.get('editable', True)
        # super(MultilingualCharField, self).__init__(verbose_name, **kwargs)
        super().__init__(verbose_name, **kwargs)

In pratica trattasi di un field per Django che scrive su database un campo per ogni lingua che uso. Cioè nel modello definisco solo un MultilingualCharField mentre nel database mi ritrovo due/tre o quelli che sono field, uno per ogni lingua. Questo __init__ però non capisco cosa sia, a cosa serva e sopratutto quale delle due versioni di super() dovrei usare (una è commentata #, commented out, non so come si dica in italiano). Apparentemente funzionano entrambe e non vedo differenze ma non so neanche dove guardare per cercarle.

Uso python 3.7 e django 2.2.

Grazie
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!