模型.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)
表格.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
中定义的类时,如何做到这一点?
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()
您可以更改该字段的任何内容......例如。必需的、选择的以及您可能希望在显示表单时做出不同决定的许多其他内容。 您还可以从此处的表单中删除字段,或添加您可能只想有条件包含的字段..例如:
del self.fields['fieldname']
if some_condition:
field['new_fieldname'] = forms.CharField()