Python 在超类属性中添加帮助_文本
假设我有一个名为MySuper的模型:Python 在超类属性中添加帮助_文本,python,django,Python,Django,假设我有一个名为MySuper的模型: class MySuper(models.Model): some_attr = models.CharField(max_length=128) 我有两个子类继承自这个模型,分别称为MySub1和MySub2 我需要在某些属性中添加帮助\u文本,但在每个子类中必须不同。有没有办法做到这一点 class MySub1(MySuper): # ... # add help_text='Help text of some_attr i
class MySuper(models.Model):
some_attr = models.CharField(max_length=128)
我有两个子类继承自这个模型,分别称为MySub1
和MySub2
我需要在某些属性中添加帮助\u文本
,但在每个子类中必须不同。有没有办法做到这一点
class MySub1(MySuper):
# ...
# add help_text='Help text of some_attr inside MySub1'
class MySub2(MySuper):
# ...
# add help_text='Help text of some_attr inside MySub2'
我需要对两个图像大小不同的相同模型执行此操作。也许有一些很好的方法可以概括这一点,但对于两个问题,我的答案可以。首先在应用程序中创建一个名为forms.py的文件
from django import forms
from .models import FeaturedProduct, ShopProduct
class FeaturedProductForm(forms.ModelForm):
class Meta:
model = FeaturedProduct
ihelp = "Image should be 500x220."
src = forms.ImageField(help_text=ihelp,required=False)
class ShopProductForm(forms.ModelForm):
class Meta:
model = FeaturedProduct
ihelp = "Image should be 100x100."
src = forms.ImageField(help_text=ihelp,required=False)
请注意,required
默认为true,即使您的模型上有null=true,blank=true
。然后在admin.py中定义ModelAdmin
s,如下所示:
from .forms import FeaturedProductForm, ShopProductForm
class ShopProductAdmin(admin.ModelAdmin):
form = ShopProductForm
class FeaturedProductAdmin(admin.ModelAdmin):
form = FeaturedProductForm
我遗漏了一些导入和整个admin.site.register
废话。如果你需要更多信息,请告诉我。表单字段的完整列表可在此处找到:
不必完全重新定义字段即可实现此目的的另一种方法是:
class MySub1(MySuper):
pass
MySub1._meta.get_field('some_attr').help_text = 'sub1 help text'
class MySub2(MySuper):
pass
MySub2._meta.get_field('some_attr').help_text = 'sub2 help text'