我正在尝试开发机制来动态创建一组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)