class ItemForm(djangoforms.ModelForm):
class Meta:
model = Item
exclude = ['added_by']
我无法理解这段代码是做什么的。我知道ItemForm继承了Modelform但后面是一个类中的类定义吗?
Item类是:
class Item(db.Model):
name = db.StringProperty()
quantity = db.IntegerProperty(default=1)
target_price = db.FloatProperty()
priority = db.StringProperty(default='Medium',choices=[
'High', 'Medium', 'Low'])
entry_time = db.DateTimeProperty(auto_now_add=True)
added_by = db.UserProperty()
答案 0 :(得分:3)
这是Django神奇的一部分。 ModelForm
(以及其他类)的元类查找内部Meta
类,并使用它对外部类进行各种更改。它是Python的深层部分之一,大多数人永远不会直接处理。
答案 1 :(得分:1)
在Python中,您可以将其他类中的类定义为封装内部类的方法。 Django使用它的方式实际上非常出色。
有关详细信息,请参阅此链接:http://www.geekinterview.com/question_details/64739
答案 2 :(得分:0)
Meta是一个特殊的类定义。
在这个例子中,它是一个简单的继承模型。 ModelForm基于Model类创建一个表单,因此通过给ModelForm类提供一个类定义,它根据相关的Model类定义创建表单元素。