django-crispy-forms:更改输入名称

时间:2018-02-06 13:29:58

标签: django-crispy-forms

我遇到django-crispy-form的一些小问题。

我目前有一个表单,它成功显示了我的模型中的所有字段。

但是,我想将html属性name更改为其他内容。我意识到这可能很难,因为django-crispy-forms可能希望名称与模型中的字段相同。

我设法更改id,但name不会更新。除了在我的数据库中更改列的名称之外,是否有机会修复此问题?

示例代码

from django import forms
from crispy_forms.helper import FormHelper

class CompanyForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(CompanyForm, self).__init__(*args, **kwargs)
        self.fields['name'].widget.attrs['id'] = 'company_n' # works
        self.fields['name'].widget.attrs['name'] = 'company_n' # does not work

        self.helper = FormHelper()

1 个答案:

答案 0 :(得分:0)

更改模型中的列名是更改ModelForm表单字段名称属性的方法。
根据我的经验,这对于设计理智的模型来说应该不是问题。

django中有效数据建模的一个很好的指南是:
https://simpleisbetterthancomplex.com/tips/2018/02/10/django-tip-22-designing-better-models.html