我需要动态创建一个类。为了进一步详细说明,我需要动态创建Django的Form类的子类。
通过动态我打算根据用户提供的配置创建一个类。
e.g。
我想要一个名为CommentForm 的类,它应继承Form类
该类应具有所选属性列表
....在这种情况下
name = forms.CharField()
comment = forms.CharField(widget = forms.Textarea())
有用的提示吗? :)
答案 0 :(得分:32)
您可以通过调用type
内置函数来动态创建类,并传递适当的参数,例如:
CommentForm = type("CommentForm", (Form,), {
'name': forms.CharField(),
...
})
适用于新式课程。我不确定,这是否适用于旧式课程。
答案 1 :(得分:12)
几乎可以在任何地方定义类。
def newclass(val):
class C(object):
def __str__(self):
return str(val)
return C
MyClass = newclass(5)
m = MyClass()
print str(m)