如何动态检索Django表单类?

如何动态检索Django表单类?,django,forms,Django,Forms,这个问题受到另一个问题的启发。在接受的答案中,建议使用以下方法动态加载任何模型: from django.db.models.loading import get_model model = get_model('app_name', 'model_name') 表格是否有等价物?我想从特定的应用程序动态加载特定的表单。保留可用模型的列表。这使得有一种方法成为可能 应用程序不保留可用表单的列表,因此没有等效的get\u forms方法 您链接到的内容和包含的代码片段是在2009年编写的。我上面

这个问题受到另一个问题的启发。在接受的答案中,建议使用以下方法动态加载任何模型:

from django.db.models.loading import get_model
model = get_model('app_name', 'model_name')
表格是否有等价物?我想从特定的应用程序动态加载特定的表单。

保留可用模型的列表。这使得有一种方法成为可能

应用程序不保留可用表单的列表,因此没有等效的
get\u forms
方法


您链接到的内容和包含的代码片段是在2009年编写的。我上面的链接是针对Django 1.7的,但对于Django的旧版本和新版本,原理是一样的。

我知道这是一个老问题,但我想我会添加我的答案,因为这是我在尝试实现这一功能时发现的问题之一。我从中借用并能够使用
getattr
动态加载表单:

from my_app import forms

custom_form = getattr(forms, 'CustomForm')()
此解决方案要求您已加载模块

我还没有测试过,但是您应该能够使用
importlib
()中的
import_module
功能将上述功能与动态模块导入结合起来。实现将类似于:

from importlib import import_module

forms = import_module('my_app', 'forms')
custom_form = getattr(forms, 'CustomForm')()
Django Oscar经常使用这种动态类加载,因此您可以查看他们的代码,看看他们是如何将这一切结合在一起的: