关键词:
【中文标题】模型元类与模型形式元类有何不同?【英文标题】:How is model Meta class different from model form Meta class? 【发布时间】:2021-12-15 02:04:15 【问题描述】:我想了解我们在模型中使用的元类。我在文档中找到了它。我记得在模型表单中也添加了元类。似乎模型元类和模型形式元类是不同的。它们有何不同以及模型表单中的元选项是什么。
【问题讨论】:
【参考方案1】:在认识论中,meta 是一个(古)希腊词,意思是关于。因此,它是一个描述模型或ModelForm
的关于 的类。名字基本上是他们唯一的共同点。
模型的Meta
类将指定模型的详细名称等,在相应的数据库表中定义的约束和索引等。Django 文档中有一个section that lists all the Meta
options for a model。
另一方面,ModelForm
的Meta
将向ModelForm
解释它应该如何为给定模型构造表单。通常,Meta
定义了ModelForm
与fields
或exclude
一起构造的模型,它们分别指定要包含/排除的字段。此外,Overriding default fields section of the documentation 列出了所有其他Meta
选项,用户可以(稍微)更改在ModelForm
中定义字段的方式。 source code [GitHub] 还列出了ModelForm
的Meta
的所有选项:
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)
【讨论】:
Python 元类有啥用?
】Python元类有啥用?【英文标题】:WhatarePythonmetaclassesusefulfor?Python元类有什么用?【发布时间】:2011-01-0115:06:26【问题描述】:不能以任何其他方式使用的元类可以做什么?AlexMartelli告诉这里有些任务没有元类就无法完成Pythonme... 查看详情
django 模型元类的标准文档字符串是啥?
】django模型元类的标准文档字符串是啥?【英文标题】:Whatisthestandarddocstringforadjangomodelmetaclass?django模型元类的标准文档字符串是什么?【发布时间】:2016-11-3019:02:02【问题描述】:django中的模型可以带有这样的元类:classAddress... 查看详情
在 Groovy 中,实例的元类与其类的元类有啥区别
】在Groovy中,实例的元类与其类的元类有啥区别【英文标题】:InGroovywhat\'sthedifferencebetweenaninstance\'smetaClassanditsclass\'smetaClass在Groovy中,实例的元类与其类的元类有什么区别【发布时间】:2016-03-1911:54:35【问题描述】:见以下代... 查看详情
子类 Django ModelBase(Django 模型的元类)
】子类DjangoModelBase(Django模型的元类)【英文标题】:SubclassDjangoModelBase(metaclassforDjangomodels)【发布时间】:2016-02-2101:41:48【问题描述】:我希望我的一些Django模型具有“所有者”属性。稍后我可能需要更改或扩充逻辑,并且该... 查看详情
一个子类化 abc 的 django 模型,给出了元类冲突
】一个子类化abc的django模型,给出了元类冲突【英文标题】:Adjangomodelthatsubclassesanabc,givesametaclassconflict【发布时间】:2012-02-0203:56:07【问题描述】:我有以下模型和抽象基类importabcfromdjango.dbimportmodelsclassAbstractBase():__metaclass__=abc... 查看详情
如何做类似 Django 模型的元类技巧
】如何做类似Django模型的元类技巧【英文标题】:HowtodoDjango-models-likemetaclasstrick【发布时间】:2015-03-1508:46:51【问题描述】:我正在为我的学习项目制作类似于ORM的Django,因为我们不允许使用现有的ORM(如果你想使用一个,你必... 查看详情
16元类(代码片段)
...方法(上)14内置方法(中)之描述符15内置方法(下)16元类一知识储备exec:三个参数 参数一:字符串形式的命令 参数二:全局作用域(字典形式),如果不指定,默认为glob 查看详情
Python 元类与类装饰器
】Python元类与类装饰器【英文标题】:Pythonmetaclassesvsclassdecorators【发布时间】:2010-12-1906:13:25【问题描述】:Python元类和类装饰器之间的主要区别是什么?有什么我可以用一个做而另一个不能做的事情吗?【问题讨论】:【参... 查看详情
将元类与多重继承结合使用的 TypeErrors
】将元类与多重继承结合使用的TypeErrors【英文标题】:TypeErrorsusingmetaclassesinconjunctionwithmultipleinheritance【发布时间】:2011-01-1307:42:18【问题描述】:我有两个关于元类和多重继承的问题。第一个是:为什么我会得到类Derived的TypeE... 查看详情
Ruby中Base的元类和Derived类有啥关系?
】Ruby中Base的元类和Derived类有啥关系?【英文标题】:WhatistherelationshipbetweenthemetaclassofBaseandDerivedclassinRuby?Ruby中Base的元类和Derived类有什么关系?【发布时间】:2011-01-0910:04:18【问题描述】:在Ruby中,我们可以在单例方法中使用... 查看详情
markdownpythonmetaclass元类与对象的关系,抽象类(代码片段)
在类似 django 的表单实现中使用元类有啥好处?
】在类似django的表单实现中使用元类有啥好处?【英文标题】:Whataretheadvantagesofusingmetaclassesindjango-likeformimplementations?在类似django的表单实现中使用元类有什么好处?【发布时间】:2011-07-2517:47:39【问题描述】:首先是一些背景... 查看详情
Python 子类跟踪 - 元类与内置
】Python子类跟踪-元类与内置【英文标题】:PythonSubclassTracking-MetaclassesvsBuiltin【发布时间】:2012-03-2617:26:03【问题描述】:对于Django选项卡库,我创建了一个使用标记子类跟踪的架构。为此,我创建了一个基类,然后从中派生所... 查看详情
参数化类和元类有啥区别(请使用 Python 中的代码示例)?
】参数化类和元类有啥区别(请使用Python中的代码示例)?【英文标题】:Whatisthedifferencebetweenaparameterizedclassandametaclass(codeexamplesinPythonplease)?参数化类和元类有什么区别(请使用Python中的代码示例)?【发布时间】:2011-03-3014:09... 查看详情
Groovy 元类与 Java 8 的互操作性
】Groovy元类与Java8的互操作性【英文标题】:GroovymetaclassinteroperabilitywithJava8【发布时间】:2014-05-1009:12:54【问题描述】:简介:我正在开发一个名为awaitility的Java库,它也有一个Groovy扩展。在Java8之前,您可以像这样使用该库://... 查看详情
用于预定义类创建的元类与继承
】用于预定义类创建的元类与继承【英文标题】:Metaclassvsinheritanceforpredefinedclasscreation【发布时间】:2019-01-2603:48:58【问题描述】:我正在为一个程序编写一些代码,该程序将能够运行一些软件、读取输入/输出并在此过程中进... 查看详情
Ruby 元类疯狂
...在尝试动态定义一个类方法,但我无法理解ruby元类模型。考虑以下类:classExampledefself.meta;(class<<self;self;end);enddefself.class_instance;self;endendExample.class_ins 查看详情
Java 实现 - 元类
...:2012-03-0919:00:03【问题描述】:按照我的理解,Java对象模型是3个级别,每个级别描述它下面的级别,因此所有Classes共享一个Meta类(它们本身是对象?)。我的问题是-Java中的构造函数是如何实现的?(或任何其他类方法)我的... 查看详情