问题描述
我在forms.py中有一个UserForm
,这在Register
和Edit Profile
功能之间很常见,它的视图也很常见,因为两个视图中有90%的功能相似
我只想在disable
页中EMailField
UserForm
中的Edit Profile
,但应该在Register
页中进行编辑。这是我的代码:
forms.py
class UserForm(forms.ModelForm):
password = None
email = forms.EmailField(required=False,disabled=True) #-- This will disable all the times
salutation = forms.ChoiceField(choices=Choices.SALUTATIONS)
blood_group = forms.ChoiceField(choices=Choices.BLOOD_GROUPS)
class Meta:
model = User
fields = ('salutation','blood_group','email','first_name','middle_name','last_name','gender','birth_date','profile')
在register
和edit
视图中都呈现相同的表单。这是我的urls.py。
path('register/',StudentView.as_view(),name='addview'),path('<int:pk>/edit/',name='editview'),
在views.py中(有关详细views.py,请检查accepted answer)
userform = UserForm(request.POST or None,instance=self.object)
admission.html
<form class="form" name="admissionForm" id="admissionForm" method="post"
enctype="multipart/form-data" action="{% url 'editview' form.instance.id %}">
{% csrf_token %}
<div class="pages">
<h4 class="mt-2 mb-3">Personal @R_931_4045@ion</h4>
{% include "student_errors.html" %}
{{userform|crispy}}
....
<div class="btn_container">
<button type="submit" class="btn btn-info float-right btn-next">Submit</button>
</div>
</div>
解决方法
在您的update_views中,您可以设置:form.fields['email'].disabled = True