python - 覆盖 ModelForm 中的初始值

标签 python django django-forms

在我的 Django (1.2) 项目中,我想在模型表单中预填充一个字段,但我的新值被忽略了。 这是片段:

class ArtefactForm(ModelForm):
    material = CharField(widget=AutoCompleteWidget('material', force_selection=False))

    def __init__(self, *args, **kwargs):
        super(ArtefactForm, self).__init__(*args, **kwargs)
        self.fields['material'].initial = 'Test'

我也尝试使用 self.base_fields,但没有效果:表单中始终显示数据库值。有什么想法吗?

最佳答案

试试这个:

def __init__(self, *args, **kwargs):
    initial = kwargs.get('initial', {})
    initial['material'] = 'Test'
    kwargs['initial'] = initial
    super(ArtefactForm, self).__init__(*args, **kwargs)

关于python - 覆盖 ModelForm 中的初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2988548/

相关文章:

python - 使用自定义字段扩展用户模型表单

django - django 内联表单集的单选按钮

django - 如何在基于类的 View 中拥有多个表单

python - 使用其他模型的对象过滤对象

python - 来自 "Learning Python the Hard Way"的 if 语句的目的是什么?

python - 如何用条件替换 Pandas 数据框中所有列中的所有值

python - BeautifulSoup 网络爬虫 : How to get piece of text

python - Django 管理没有错误 - 隐藏高级查找部分

django - 获取另一个表中每条记录的总数

Python Django 电子邮件表单示例