如何访问并修改继承类的内部类?
我有一个类,具体来说,就是这个:
class ProductVariantForm_PRE(ModelForm):
class Meta:
model = ProductVariant
exclude = ("productowner","status")
def clean_meta(self):
if len(self.cleaned_data['meta']) == 0:
raise forms.ValidationError(_(u'You have to select at least 1 meta attribute.'))
for m in self.cleaned_data['meta']:
for n in self.cleaned_data['meta']:
if m != n:
if m.name == n.name:
raise forms.ValidationError(_(u'You can only select 1 meta data of each type. IE: You cannot select 2 COLOR DATA (Red and Blue). You can however select 2 different data such as Shape and Size.'))
return self.cleaned_data['meta']
我想扩展这个类(一个模型表单),所以我创建了一个类 B。
类 B 看起来是这样的:
class B(ProductVariantForm_PRE):
我该如何在类 B 中访问内部类 "Meta",并修改它的排除字段呢?
谢谢!
1 个回答
4
你可以查看Django的文档,了解模型继承的相关内容,链接在这里。在那一页上有这么说:
当你创建一个抽象基类时,Django会把你在基类中定义的任何Meta内部类作为一个属性提供出来。如果子类没有自己定义Meta类,它就会继承父类的Meta。如果子类想要扩展父类的Meta类,它可以在自己的Meta类中继续继承。比如:
class CommonInfo(models.Model):
...
class Meta:
abstract = True
ordering = ['name']
class Student(CommonInfo):
...
class Meta(CommonInfo.Meta):
db_table = 'student_info'