Oli*_*Oli 5 python django django-models django-orm
我有一些模型都有一些共同的功能.每个模型都是物理库存类型的项目,因此他们分享类似的东西stock,并分享一些事情,如低库存警告事件(发送电子邮件).
我没有复制代码,而是编写了一个抽象模型并从中继承.
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:
#...
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要更改标签或添加不同于我正在产生的子类中help_text的stock字段.这非常重要,因为客户(及其员工)需要有关单位的说明.我已经尝试过在孩子身边徘徊,__init__但我没有到达任何地方.
tl; dr如何从子模型中更改字段上的标签?
当从抽象类进行继承时,在 Django 中您可能需要使用:
CustomClass._meta.get_field('yourfield').verbose_name = 'Your custom text'
你的课程应该是这样的:
class AncestorClass(models.Model):
stock = models.CharField(max_length=50, verbose_name='AncestorStockName')
# etc ...
Run Code Online (Sandbox Code Playgroud)
现在我们应该像这样自定义子类:
class ChildClass(AncestorClass):
stock = models.CharField... # Customize your stock field
ChildClass._meta.get_field('stock').verbose_name = 'CustomVerboseStock'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |