模型元类与模型形式元类有何不同?



我想了解我们在模型中使用的元类。我在文档中找到了它。我记得在模型表单中添加了元类。似乎模型元类和模型表单元类是不同的。它们有何不同,模型表单中的元选项是什么。

在认识论中,meta是一个(古老的)希腊词,意思是关于。因此,它是一个类,它说明了有关模型或ModelForm。这个名字基本上是他们唯一的共同点。

模型的Meta类将指定模型的详细名称等,相应数据库表中定义的约束和索引等。Django 文档中有一个部分列出了模型的所有Meta选项。

另一方面,ModelFormMeta将向ModelForm解释它应该如何为给定模型构建表单。通常,Meta定义为其构建ModelForm的模型以及分别指定要包含/排除的字段的fieldsexclude。此外,文档的覆盖默认字段部分列出了所有其他Meta选项,用户可以在其中(稍微)更改字段在ModelForm中的定义方式。源代码 [GitHub] 还列出了ModelFormMeta的所有选项:

class ModelFormOptions:
def __init__(self, options=None):
self.model= getattr(options, 'model', None)
self.fields= getattr(options, 'fields', None)
self.exclude= getattr(options, 'exclude', None)
self.widgets= getattr(options, 'widgets', None)
self.localized_fields= getattr(options, 'localized_fields', None)
self.labels= getattr(options, 'labels', None)
self.help_texts= getattr(options, 'help_texts', None)
self.error_messages= getattr(options, 'error_messages', None)
self.field_classes= getattr(options, 'field_classes', None)

相关内容

  • 没有找到相关文章

最新更新