Django - 在 form.py Meta class 中添加小部件选项?
Django - add widget option in form.py Meta class?
models.py
from django.db import models
class user(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
email = models.EmailField(max_length=100, unique=True)
forms.py
from django import forms
from second_app.models import user
class NewUserForm(forms.ModelForm):
class Meta:
model = user
fields = '__all__'
在不从模型继承的正常 forms.py
中,您可以使用 field = forms.CharField(widget=forms.HiddenInput)
指定如何向用户显示输入字段。当我的 forms.py
继承 models.py
中定义的 class 时,如何做到这一点?
您可以为此元的 widgets
选项使用:
from django import forms
from second_app.models import user
class NewUserForm(forms.ModelForm):
class Meta:
model = user
fields = '__all__'
widgets = {
'field_name': forms.HiddenInput(),
}
您可以通过 __init__
方法修改小部件:
def __init__(self, *args, **kwargs):
super(NewUserForm, self).__init__(*args, *kwargs)
self.fields['fieldname'].widget = forms.HiddenInput()
您可以更改该字段的任何内容.. 例如。 required、choices 和许多其他您可能希望在显示表单时以不同方式决定的事情。您还可以在此处从表单中删除字段,或者添加您可能只想有条件地包含的字段。例如:
del self.fields['fieldname']
if some_condition:
field['new_fieldname'] = forms.CharField()
models.py
from django.db import models
class user(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
email = models.EmailField(max_length=100, unique=True)
forms.py
from django import forms
from second_app.models import user
class NewUserForm(forms.ModelForm):
class Meta:
model = user
fields = '__all__'
在不从模型继承的正常 forms.py
中,您可以使用 field = forms.CharField(widget=forms.HiddenInput)
指定如何向用户显示输入字段。当我的 forms.py
继承 models.py
中定义的 class 时,如何做到这一点?
您可以为此元的 widgets
选项使用:
from django import forms
from second_app.models import user
class NewUserForm(forms.ModelForm):
class Meta:
model = user
fields = '__all__'
widgets = {
'field_name': forms.HiddenInput(),
}
您可以通过 __init__
方法修改小部件:
def __init__(self, *args, **kwargs):
super(NewUserForm, self).__init__(*args, *kwargs)
self.fields['fieldname'].widget = forms.HiddenInput()
您可以更改该字段的任何内容.. 例如。 required、choices 和许多其他您可能希望在显示表单时以不同方式决定的事情。您还可以在此处从表单中删除字段,或者添加您可能只想有条件地包含的字段。例如:
del self.fields['fieldname']
if some_condition:
field['new_fieldname'] = forms.CharField()