Django通用视图表单

时间:2019-02-19 01:51:40

标签: python django django-forms django-views

我正在使用在线请假系统,当时员工可以使用该系统申请请假并在线批准他们的请假。一旦申请人离职,请假将存储在数据库中。授权者可以在其中查看桌子上的叶子。要授权休假,授权人单击相应的行,然后他会在其中获得一份表格以授权休假。尝试处理表单以授权请假时,我收到一条错误消息:无法将字符串转换为浮点数:

路径: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: 

0 个答案:

没有答案