类中的类定义?

时间:2010-11-06 09:08:04

标签: python django-forms

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()

3 个答案:

答案 0 :(得分:3)

这是Django神奇的一部分。 ModelForm(以及其他类)的元类查找内部Meta类,并使用它对外部类进行各种更改。它是Python的深层部分之一,大多数人永远不会直接处理。

答案 1 :(得分:1)

在Python中,您可以将其他类中的类定义为封装内部类的方法。 Django使用它的方式实际上非常出色。

有关详细信息,请参阅此链接:http://www.geekinterview.com/question_details/64739

答案 2 :(得分:0)

Meta是一个特殊的类定义。

在这个例子中,它是一个简单的继承模型。 ModelForm基于Model类创建一个表单,因此通过给ModelForm类提供一个类定义,它根据相关的Model类定义创建表单元素。