python - 动态更新ModelForm的Meta类模型字段

标签 python django dynamic model modelform

def SiteAdminForm(model_cls, *args, **kwargs):
    class MerchantAdminForm(forms.ModelForm):
        class Meta:
            exclude = ('external_links', 'published', 'logo','image_zip_file',)
            model = model_cls

        def __init__(self, *args, **kwargs):
            super(MerchantAdminForm, self).__init__(*args, **kwargs)

    return MerchantAdminForm()

# In use...
merchant_form = SiteAdminForm(merchant.__class__, instance=merchant)

无论传入 model_cls 的内容是什么,模型始终会被忽略。

Meta.exclude设置正确,如何动态更新Meta.model

最佳答案

def get_form(model_class):
    class DynamoForm(forms.ModelForm):
        class Meta:
            model = model_class

    return DynamoForm


form_set = get_form(ActualModel)(request.POST)

这就是你想要的吗?

关于python - 动态更新ModelForm的Meta类模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239096/

相关文章:

python - 中止 sqlalchemy 中 before_insert 事件的插入

python - 如何对 "chess order"中的数组或查询集进行排序?

django - 从相关模型中获取所有实例

Django 重定向并带有自定义错误消息

java - 如何在Java中动态创建类的对象?

python - 为什么字典和集合中的顺序是任意的?

Python 相当于 curls --form : Create multipart form-data post request with data in "form" parameter

javascript - 在 JS 中创建动态变量和函数

python - Twisted 中的 fatal error 和延迟,停止延迟

text - 使用 setNativeProps 响应 native 更改文本