Tengo algunos modelos que tienen todas una funcionalidad común. Cada modelo es un tipo de artículo almacenado físicamente, por lo que comparten cosas como stock
y también comparten algunas cosas como eventos de advertencia de stock bajo (envía un correo electrónico).Django: anula la etiqueta de campo o help_text en el modelo
En lugar de duplicar el código, escribí un modelo abstracto y he heredado de él.
class LowStockModel(models.Model):
stock = stock = models.IntegerField()
out_of_stock_behaviour = models.CharField(max_length=20, choices=[...])
class Meta:
abstract = True
def save(self, *args, **kwargs):
super(self.__class__, self).save(*args, **kwargs)
if self.stock <= 0:
#...
Mi problema es que necesito cambiar la etiqueta o añadir diferentes help_text
al campo stock
en las clases hijas que estoy desove. Es muy importante porque el cliente (y su personal) necesitan instrucciones sobre las unidades. Intenté aferrarme al niño __init__
pero no llegaré a ningún lado.
tl; dr ¿Cómo se puede cambiar la etiqueta en un campo de un modelo hijo?
No haga esto: 'super (self .__ class__, self)' Puede obtener fácilmente una recursión infinita. – DrTyrsa
No va a ser bonito, pero: http://stackoverflow.com/a/928774/16361 – AdamKG
Gracias @ AdamKG eso es perfecto. – Oli