Основываясь на следующем изображении, я пытаюсь сделать категорию полей и текущие точки недоступными для редактирования, когда статус задачи Finalized
или Cancelled
, в противном случае поля должны быть редактируемыми.
Ниже приведен код из моего html файла.
{% extends "base.html" %} {% load widget_tweaks %}
{% block content %}
<div id="form-group">
<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
<label>Select your category</label>
{{ form.category|add_class:"card" }}
<label>What's the status of the task?</label>
{{ form.status|add_class:"card" }}
<label>Current points:</label>
{{ form.points|add_class:"card" }}
<label>Finalized date:</label>
{{ form.ending_date|add_class:"card" }}
<button type="submit" class="btn btn-success">Send</button>
</form>
</div>
Ниже приведен код из моего forms.py
файл.
class TaskModelForm(forms.ModelForm):
class Meta:
model= Task
fields = ['category', 'status', 'points']
def __init__(self, *args, **kwargs):
super(TaskModelForm, self).__init__(*args, **kwargs)
self.fields['status'].required = False
self.fields['points'].required = False
Когда я хочу отредактировать содержимое этой формы, мне нужно проверить, является ли статус Завершенным, поэтому поля нельзя редактировать, в противном случае поля должны быть редактируемыми, и я что-то думаю about:
{% extends "base.html" %} {% load widget_tweaks %}
{% block content %}
{% if form.status.value == 'Active' %} <!--make the fields editable -->
<div id="form-group">
<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
<label>Select your category</label>
{{ form.category|add_class:"card" }}
...
<button type="submit" class="btn btn-success">Send</button>
</form>
</div>
{% endif %}
{% if form.status.value == 'Finalized' %} <!--make the fields non-editable -->
<div id="form-group">
<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
<label>Select your category</label>
{{ form.category|add_class:"card" }}
...
<button type="submit" class="btn btn-success">Send</button>
</form>
</div>
{% endif %}
Тем не менее, я считаю, что мой подход может не сработать, потому что это может быть скорее проблема переднего плана, чем проблема заднего плана (просто предположение). Можете ли вы указать мне правильное направление для решения этой проблемы?