Django表单字段动态子类

时间:2015-07-30 08:28:01

标签: python django forms class dynamic

我正在尝试开发机制来动态创建一组Django表单字段。

在尝试时,我遇到了奇怪的行为,我想知道,如果值得担心的话。

这里是代码:

In [139]: from django import forms

In [140]: MyFieldDynamic = type('MyFieldDynamic', (forms.CharField,), {})

In [141]:   1 class MyField(forms.CharField):
            2     pass

In [142]: MyFieldDynamic.mro()
Out[142]: 
[django.utils.deprecation.MyFieldDynamic,
 django.forms.fields.CharField,
 django.forms.fields.Field,
 object]

In [143]: MyField.mro()
Out[143]: 
[__main__.MyField,
 django.forms.fields.CharField,
 django.forms.fields.Field,
 object]

当您看到使用type创建的类时,它的第一个超类是django.utils.deprecation.MyFieldDynamic。这件事有什么问题?

还有一个更广泛的问题 - 它是否可能,我尝试做什么 - 在运行时创建表单字段?也许有一些资源,我跳过了?

编辑:

的Python:

2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]

Django的:

(1, 8, 3, 'final', 0)

0 个答案:

没有答案