【问题标题】:django-crispy-forms: Change name of inputdjango-crispy-forms:更改输入名称
【发布时间】:2018-07-16 14:07:22
【问题描述】:

我遇到了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()

【问题讨论】:

    标签: django-crispy-forms


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 2019-07-31
      • 1970-01-01
      • 2020-01-21
      • 2012-06-16
      • 2015-02-02
      • 2014-06-22
      • 2016-12-20
      • 1970-01-01
      相关资源
      最近更新 更多