Diciamo che ho un po 'modello di Django che è una classe base astratta:Come si cambiano gli argomenti dei campi nelle sottoclassi del modello Django?
class Foo(models.Model):
value=models.IntegerField()
class Meta:
abstract = True
e ha due classi derivate, dove mi piacerebbe il valore di default del campo per essere diverso per ogni classi figlie. Non posso semplicemente ignorare il campo
class Bar(Foo):
value=models.IntegerField(default=9)
perché Django non ti consente di ignorare i campi in sottoclassi. Ho visto post sul tentativo di modificare le scelte disponibili, ma in questo caso mi interessa soprattutto la modifica del valore predefinito. Qualche consiglio?
Se dovessi semplicemente per definire i valori di default per tutti gli elementi della classe base, potremmo poi basta sovrascrivere il metodo save per tutte le classi figlie o le impostazioni predefinite definite nella classe base fanno sì che le variabili di istanza non siano mai vuote? (Cioè, se definisco un valore predefinito nella classe genitore, è quel valore predefinito aggiunto quando salvi o quando inizializzi l'oggetto?) – Zxaos
Ancora, devi vedere l'ereditarietà di Django come FK per la super-classe, quindi se la super-classe ha un campo con un valore predefinito, il campo nella sottoclasse avrà anche il campo con il valore predefinito, perché il campo non è in realtà dalla sottoclasse ma dalla super-classe. – juliomalegria