我正在使用在线请假系统,当时员工可以使用该系统申请请假并在线批准他们的请假。一旦申请人离职,请假将存储在数据库中。授权者可以在其中查看桌子上的叶子。要授权休假,授权人单击相应的行,然后他会在其中获得一份表格以授权休假。尝试处理表单以授权请假时,我收到一条错误消息:无法将字符串转换为浮点数:
路径:path('unitDirectorForm /',views.unitDirectorForm,name ='unitDirectorForm'),
class NewLeave(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
APPROVAL_STATUS_CHOICES=(
('Pending','Pending'),
('Approved','Approved'),
('Rejected','Rejected'),
)
Director_Authorization_Status = models.CharField(max_length = 100, choices = APPROVAL_STATUS_CHOICES, default = 'Pending', blank = False)
def save(self, *args, **kwargs):
getid= NewLeave.objects.get(pk=pk)
minus_value = self.Total_working_days
if (self.Director_Authorization_Status == 'Approved'):
LeaveBalance.objects.filter(pk=pk).update(Leave_current_balance=F('Leave_current_balance') - minus_value)
return super(NewLeave, self).save(*args, **kwargs)
else:
return super(NewLeave, self).save(*args, **kwargs)
class NewLeaveCreate(CreateView):
model = NewLeave
fields = ('Director_Authorization_Status','Authorized_by_Director')
def form_valid(self, form):
super().form_valid(form)
auth_status = form.cleaned_data['Director_Authorization_Status']
if (auth_status == 'Approved'):
return redirect('myapp:success_page')
elif (auth_status == 'Pending'):
return redirect('myapp:pending_success')
else:
return redirect('myapp:rejected_success')
追踪
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/newleave/6
Django Version: 2.1.7
Python Version: 3.6.7
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/views/generic/base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/views/generic/edit.py" in post
172. return super().post(request, *args, **kwargs)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/views/generic/edit.py" in post
142. return self.form_valid(form)
File "/var/www/projects/newproject/balance/myapp/views.py" in form_valid
49. super().form_valid(form)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/views/generic/edit.py" in form_valid
125. self.object = form.save()
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/forms/models.py" in save
458. self.instance.save()
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/base.py" in save
718. force_update=force_update, update_fields=update_fields)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/base.py" in save_base
748. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/base.py" in _save_table
831. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert
869. using=using, raw=raw)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/query.py" in _insert
1136. return query.get_compiler(using=using).execute_sql(return_id)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1288. for sql, params in self.as_sql():
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in as_sql
1241. for obj in self.query.objs
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in <listcomp>
1241. for obj in self.query.objs
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in <listcomp>
1240. [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in prepare_value
1182. value = field.get_db_prep_save(value, connection=self.connection)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/fields/__init__.py" in get_db_prep_save
790. return self.get_db_prep_value(value, connection=connection, prepared=False)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/fields/__init__.py" in get_db_prep_value
785. value = self.get_prep_value(value)
File "/var/www/projects/newproject/my_env/lib/python3.6/site-packages/django/db/models/fields/__init__.py" in get_prep_value
1737. return float(value)
Exception Type: ValueError at /newleave/6
Exception Value: could not convert string to float: