django - 如何从表单构造函数动态更新Django Form Meta类字段?

标签 django django-forms

我想动态更新Meta.fields。是否可以通过Form构造函数来完成?我尝试了以下操作,但是year在表单生成过程中没有出现。仅显示nametitle

class Author(models.Model):
    name = ...
    title = ...
    year = ...

class PartialAuthorForm(ModelForm):
    class Meta:
        model = Author
        fields = ('name', 'title')

    def __init__(self, *args, **kwargs):
        self.Meta.fields += ('year',)

最佳答案

不,那行不通。甚至在您进入__init__之前,元数据都是由元类解析的-令人惊讶。

执行此操作的方法是将字段手动添加到self.fields

def __init__(self, *args, **kwargs):
    super(PartialAuthorForm, self).__init__(*args, **kwargs)
    self.fields['year'] = forms.CharField(whatever)

关于django - 如何从表单构造函数动态更新Django Form Meta类字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038860/

相关文章:

python - Windows 上的 django-admin.py 和 virtualenv 问题

django - 获取表单响应,进行 api 调用,然后在 Django 中显示 api 调用

python - Django formtools 向导生成空白页(未返回错误)

python - 有没有办法结合CreateView和UpdateView?

django - 如何自定义 Django 的评论表单?

python - 在django中更新cookie而不重置过期时间

python-3.x - Django 使用按钮重新加载当前页面

python - 关于继承以前模型的意见

javascript - 使用 Django Form 执行 AJAX 调用

django - 如何在 Django 中根据域名或 TLD 设置 urlpatterns?