首页 文章

您好我的自定义验证抛出一个TypeError,说issubclass()arg 1必须是一个类

提问于
浏览
0

嗨,我添加了自定义验证 . 它抛出一个TypeError,说issubclass()arg 1必须是一个类 . 我在admin.py中的代码是

class AppraisalScheduleAdmin(admin.ModelAdmin):
    exclude = ['intUpdatedBy']
    form = 'tbmstappraisalschedForm'

        def save_model(self, request, obj, form, change):
            obj.intUpdatedBy = request.user.id
            obj.save()

class tbmstappraisalschedForm(forms.ModelForm):

     def clean(self):
          """ 
          Override the default clean method to check whether this course has been already inputted.
          """    
          cleaned_data = super(tbmstappraisalschedForm, self).clean()
          depart_id = cleaned_data.get('intDeptID')
          fromdate = cleaned_data.get('sdtFromDate')
          todate = cleaned_data.get('todate')
          matching_records = tbmstappraisalsched.objects.filter(intDeptID=depart_id)
          if self.instance:
              matching_records.exclude(pk=self.instance.pk)
          if matching_records.exists():
              msg = "The slot for selected department and selected dates exists" % name
              raise ValidationError(msg)
          else:
              return self.cleaned_data
    class Meta:
        model = tbmstappraisalsched

追溯是

回溯:文件"C:\Python27\lib\site-packages\django\core\handlers\base.py"在get_response 103中.resolver_match = resolver.resolve(request.path_info)文件"C:\Python27\lib\site-packages\django\core\urlresolvers.py"在解析319.对于self.url_patterns中的模式:文件"C:\Python27\lib\site-packages\django\core\urlresolvers.py"在url_patterns中347. patterns = getattr(self.urlconf_module,"urlpatterns",self.urlconf_module )文件"C:\Python27\lib\site-packages\django\core\urlresolvers.py"在urlconf_module 342. self.urlconf_module = import_module(self.urlconf_name)文件"C:\Python27\lib\site-packages\django\utils\importlib.py"在import_module 35中. import (名称)文件"C:\pythonprgs\opas\opas\urls.py"在5. admin.autodiscover()文件"C:\Python27\lib\site-packages\django\contrib\admin__init_.py"在自动发现中29. import_module('%s.admin'%app)文件"C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module 35. import (name)File "C:\pythonprgs\opas\schdeules\admin.py" in 60. admin.site.register(tbmstappraisalsched,AppraisalScheduleAdmin)File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in register 98.validate(admin_class,model)File "C:\Python27\lib\site-packages\django\contrib\admin\validation.py" in validate 25. validate_base(cls,model)File "C:\Python27\lib\site-packages\django\contrib\admin\validation.py"在validate_base 317.如果hasattr(cls,'form')而不是issubclass(cls.form,BaseModelForm):

异常类型:TypeError at / admin / schdeules / tbmstappraisalsched / add / Exception值:issubclass()arg 1必须是一个类

1 回答

  • 1

    请参阅下面的admin.py代码

    from .forms import tbmstappraisalschedForm 
        class AppraisalScheduleAdmin(admin.ModelAdmin):
            exclude = ['intUpdatedBy']
        #    form = 'tbmstappraisalschedForm'  you can not pass a string  here .
             form = tbmstappraisalschedForm     #do like this 
    
            def save_model(self, request, obj, form, change):
                obj.intUpdatedBy = request.user.id
                obj.save()
    

相关问题