Django:覆盖子模型中的字段标签或help_text

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_textstock字段.这非常重要,因为客户(及其员工)需要有关单位的说明.我已经尝试过在孩子身边徘徊,__init__但我没有到达任何地方.

tl; dr如何从子模型中更改字段上的标签?

Alv*_*oAV 5

当从抽象类进行继承时,在 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)