【问题标题】:Is there a way to pass a list to determine fields in a django form?有没有办法传递一个列表来确定 django 表单中的字段?
【发布时间】:2020-08-06 20:49:13
【问题描述】:

我有一个由管理员确定的列表,用户应该能够填写哪些字段。我尝试将我的字段子集传递到我的 forms.py 中的 fields 变量中,但所有字段仍呈现在模板中。

forms.py

class myForm(forms.ModelForm):

    myList = ['field1']

    field1 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    field2 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))

    class Meta:
        model = myModel
        fields = myList

我只是在我的 html 中使用 {{ form }} 呈现我的表单。我没有收到任何错误,但我的应用会呈现所有字段,而不仅仅是列表中的字段

【问题讨论】:

标签: python django


【解决方案1】:

试试下面的代码:

class myModel(models.Model):  # Your Model
    field1 = models.CharField( .. )
    field2 = models.CharField( .. )


class myForm(forms.ModelForm):  # Your Form Model
    class Meta:
        model = myModel
        fields = ['field1']
        widgets = {
            'field1': forms.TextInput( attrs={'class': 'form-control'} )
        }

参考https://docs.djangoproject.com/en/3.1/topics/forms/modelforms/

【讨论】:

  • 这可行,但它不像我需要的那样动态。我需要一个管理员才能进入管理面板并检查每个用户将在他的表单上看到哪些框。 200 个用户和 20000 种不同的表单。
猜你喜欢
  • 2020-05-10
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
相关资源
最近更新 更多