Django-基于类型创建类的表单
我有一个抽象模型和一堆从中继承的子类 我可以得到这些子类的列表,但是我如何将它们放入表单中,以便用户可以选择创建其中一个 例如:-Django-基于类型创建类的表单,django,django-models,django-forms,Django,Django Models,Django Forms,我有一个抽象模型和一堆从中继承的子类 我可以得到这些子类的列表,但是我如何将它们放入表单中,以便用户可以选择创建其中一个 例如:- class Abstract(models.Model): class Meta: abstract = True class ImplA(Abstract): pass class ImplB(Abstract): pass 我需要一个表单,使用户可以选择创建ImplA实例或IMLB实例。您可以按如下方式实现此功能 首
class Abstract(models.Model):
class Meta:
abstract = True
class ImplA(Abstract):
pass
class ImplB(Abstract):
pass
我需要一个表单,使用户可以选择创建ImplA实例或IMLB实例。您可以按如下方式实现此功能 首先创建一个模型来保存用户输入
SUBCLASSCHOICE = (
('ImplA', 'ImplA'),
('ImplB', 'ImplB'),
)
class UserTable(models.Model):
abstract_class = models.CharField()
sub_class = models.CharField(choices=SUBCLASSCHOICE)
您现在可以从UserTable获取数据并动态生成类,如下所示
models.py
user\u table=UserTable.objects.get()
可能会为每个模型创建单独的表单?因此您希望用户选择并创建数据库列?@xyres这可能会起作用-但我不希望每次向代码中添加新的Impl时都必须创建新表单。@Amar不,我希望用户能够选择要创建的对象类型。@bodger这些模型对象是什么?如果是这样,则表示您正在为用户提供创建数据库列的选项。此答案中的表单是什么?
local()[user_table.sub_class] = type(
user_table.sub_class, #model class name
(user_table.abstract_class ,),
)