0
我在Django應用程序中使用表單。 此表單用於設置一個值,並再次進行更改。僅在編輯時需要的字段
改變它時,需要指定一個原因,但不要在設置時指定。
當值爲None時,我將字段'reason'的顯示更改爲none,但由於該字段爲required
,因爲該字段未填充,所以用戶無法提交表單。
當確認一下:
另外,編輯時,該值是預先填寫,因爲「理由」字段未填寫也顯示錯誤。
前的任意位置單擊:
我能做些什麼,以便編輯字段時,才需要?
編輯:代碼
視圖
def change_grade(request, grade_id):
grade = get_object_or_404(Grade, id=grade_id)
if(request.method=='POST'):
form = GradeForm(request.POST)
if(form.is_valid()):
#save it
if(grade.grade is None):
form = GradeForm()
else:
form = GradeForm({'grade':grade.grade})
return render(...)
形式
class GradeForm(forms.Form):
grade = forms.DecimalField()
reason = forms.CharField(widget=forms.Textearea(), required = True)
模板
{%if grade.grade is None%}
<script>
window.onload = function(){
document.getElementById("id_reason").parentElement.style.display = "none";
}
</script>
{%endif%}
EDIT2:我已經找到了解決辦法。我將該字段設置爲不需要,並將其設置爲在我的模板中使用JS。
{%if sub_course_grade.grade is None%}
<script>
window.onload = function(){
reason_field = document.getElementById("id_reason");
reason_field.parentElement.style.display = "none";
}
</script>
{%else%}
<script>
window.onload = function(){
reason_field = document.getElementById("id_reason");
reason_field.setAttribute("required", "");
}
</script>
{%endif%}
我知道這是不是最優的,因爲用戶可以編輯HTML和不發送的原因,但是這是不夠好這種應用。
你能分享適當的'view'處理這個? –
你能提供你的表格代碼嗎? –