Контрольный список не получает значение формы django
Когда я пытаюсь редактировать информацию в моей таблице. Все работает отлично, за исключением того, что мой контрольный список не получает значения. Все остальные поля получают значение при загрузке модала редактирования. Обратите внимание, что когда я попробовал получить значение на отдельной странице вместо модала, это все равно не сработало. Я сократил свой код, чтобы сделать его более читабельным. Если вы хотите увидеть больше, пожалуйста, дайте мне знать. Вот мой код.
forms.py:
class TraineeForm(forms.ModelForm):
GENDER_CHOICES = [
('Male', 'Male'),
('Female', 'Female'),
('Other', 'Other')
]
EDUCATION_CHOICES = [
('P', 'Primary'),
('J', 'Junior'),
('S', 'Senior')
]
TraineePic = forms.ImageField(label="Image :", required=False, widget=forms.ClearableFileInput())
Name = forms.CharField(widget=forms.TextInput(attrs={'class':'col-sm-4'}), label='Name :')
Course = forms.ChoiceField(widget=forms.Select(attrs={'class':'col-sm-4'}),choices=course_choices, label='Course :')
BatchNo = forms.CharField(widget=forms.NumberInput(attrs={'class':'col-sm-4', 'placeholder':'Numbers only'}), label='Batch No :')
Gender = forms.ChoiceField(widget=forms.RadioSelect(attrs={'class': 'col-sm-4 form-check-inline', 'id':'id_Gender'}),label='Gender :', choices=GENDER_CHOICES)
Education = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(attrs={'class': 'col-sm-4 form-check-inline','id':'id_Education'}), label='Education :', choices=EDUCATION_CHOICES)
class Meta():
model = Trainee
fields = ("Name","Course","BatchNo","Gender","Education",)
views.py:
def updateTrainee(request, id):
trainee = get_object_or_404(Trainee, pk=id)
if request.method == "POST":
form = TraineeForm(request.POST,request.FILES,instance=trainee)
if form.is_valid():
form.save()
return HttpResponse(status=204, headers={'HX-Trigger' : 'changeDetected'})
else:
form = TraineeForm(instance=trainee)
return render(request, 'MyTestApp/save.html', {'form':form})
save/edit.html:
<form class="modal-content" enctype="multipart/form-data" hx-post="{{request.path}}" autocomplete="off" >
{%csrf_token%}
<div class="modal-header">
{% if trainee %}
<h5 class="modal-title"> Edit a Trainee </h5>
{% else %}
<h5 class="modal-title">Add a Trainee </h5>
<button class="close" type="button" id="span_close_modal_btn" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true" >×</span>
</button>
{%endif%}
</div>
<div class="modal-body">
<div class="form-group row">
<label class="col-sm-3 col-form-label"> Name: </label>
<div class="col-8">
{{form.Name}}
</div>
</div>
<div class="form-group row" >
<label class="col-sm-3 col-form-label"> Gender: </label>
<div class="col-8" id="gender_div_id" >
{{form.Gender}}
</div>
</div>
<div class="form-group row" >
<label class="col-sm-3 col-form-label"> Education: </label>
<div class="col-8" >
{{form.Education}}
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label" for="Course"> Course: </label>
<div class="col-8">
{{form.Course}}
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label"> BatchNo: </label>
<div class="col-8">
{{form.BatchNo}}
</div>
</div>.............
это напрямую невозможно в django, но вы можете достичь этого, используя сторонние библиотеки для получения дополнительной информации откройте ссылку здесь
я уже архивировал это вот так
---- models.py --------
from multiselectfield import MultiSelectField
EDUCATION_CHOICES = [('P', 'Primary'),('J', 'Junior'),('S', 'Senior')]
class Trainee(models.Model):
TraineeID = models.AutoField(primary_key=True)
Name = models.CharField(max_length=50)
Course = models.CharField(max_length=40)
BatchNo = models.CharField(max_length=15)
Gender = models.CharField(max_length=10)
Education = MultiSelectField(choices=EDUCATION_CHOICES)
---- form.py --------
class TraineeForm(forms.ModelForm):
class Meta:
model = Trainee
fields = "__all__"