#python-3.x #django #django-views
Вопрос:
я попытался сохранить экземпляр формы с помощью цикла. я создал модели управления назначениями и рабочего места.
пользователь в управлении назначением-это внешний ключ, я решил создать представления, которые сохранят всех пользователей, сделав их списком
views.py
def create_job(request):
emp = EmployeeManagement.objects.filter(is_employee=True, is_supervisor=False)
form = CreateEmployeeJob()
if request.method == 'POST':
form = CreateEmployeeJob(request.POST or None, request.FILES or None)
emp_list = request.POST.getlist('emp')
print(emp_list) // ['1', '2']
if form.is_valid():
if emp_list:
for employee in emp_list:
form.instance.worker_id = int(employee)
form.save()
context = {
'employee': emp,
'form': form,
}
return render(request, 'd/form.html', context)
представления, которые я создаю, сохраняют только последний индекс списка
, пока в form.html
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
{% if employee %}
{% for emp in employee %}
<input type="checkbox" id="emp" name="emp" value="{{emp.id}}"> {{ emp }} <br>
{% endfor %}
{% endif %}
<br>
<button>Save</button>
</form>
есть какие-то ошибки в моем models.py
class WorkPlace(models.Model):
buildings = models.CharField(max_length=255, verbose_name='Nama Gedung : ')
tower_name = models.CharField(max_length=255, verbose_name='Nama Tower : ')
ground_name = models.CharField(max_length=255, verbose_name='Nama Lantai : ')
job_area = models.CharField(max_length=255, verbose_name='Zona Kerja : ')
qr_code = models.TextField(verbose_name='unique code QR', default=generate_code())
qr_img = models.FileField(verbose_name='QR Code Image', upload_to='qr/', blank=True, null=True)
class AssignmentControl(models.Model):
assignment = models.ForeignKey(WorkPlace, on_delete=models.CASCADE, blank=True)
access_permission = models.BooleanField(default=False)
worker = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
estimated_time = models.IntegerField(default=0, verbose_name='lama waktu pengerjaan : ')
start_time = models.DateTimeField(blank=True, null=True)
end_time = models.DateTimeField(blank=True, null=True)
on_progress = models.BooleanField(default=False)
is_done = models.BooleanField(default=False)
img_before = models.FileField(upload_to='assignment/before/', blank=True)
img_after = models.FileField(upload_to='assignment/after/', blank=True)