2013-10-25 2 views
0

Привет, я добавил пользовательскую проверку. Он бросает TypeError, говорящий, что issubclass() arg 1 должен быть классом. и мой код в admin.py являетсяПривет, моя пользовательская проверка бросает выражение TypeError issubclass() arg 1 должно быть классом

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 

отслеживающий является

Traceback: Файл "C: \ python27 \ Lib \ сайт-пакеты \ Джанго \ основные \ обработчики \ 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.u rlconf_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 \ Джанго \ Utils \ importlib.py "в import_module 35. импорт (имя) файла "C: \ pythonprgs \ OPAS \ OPAS \ urls.py" в 5. admin.autodiscover() File" 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 "в import_module 35. импорт (имя) Файл «C: \ pythonprgs \ opas \ schdeules \ admin.py» в 60. admin.site.register (tbmstappraisalsched, AppraisalScheduleAdmin) Файл «C: \ Python27 \ lib \ site-packages \ django \ contrib \ admin \ sites.py "в регистре 98. validate (admin_class, model) Файл« C: \ Python27 \ lib \ site-packages \ django \ contrib \ admin \ validation.py »в подтверждении 25. validate_base (cls, model) Файл «C: \ Python27 \ lib \ site-packages \ django \ contrib \ admin \ validation.py» в validate_base 317. if hasattr (cls, 'form'), а не issubclass (cls.form, BaseModelForm):

Тип исключения: TypeError at/admin/schdeules/tbmstappraisalsched/add/ Исключительное значение: i ssubclass() аргумент 1 должен быть класс

+0

1. Пожалуйста исправить отступы и 2. Пожалуйста, пост реальную ошибку и отслеживающий. –

+0

нет ошибок отступа – ram

ответ

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()
+0

, когда я пытаюсь как у сказать, что он поднимает ошибку tbmstappraisalschedForm 'не определен. – ram

+0

Да, чувак, пожалуйста, позвоните этому классу формы в ваш файл admin.py.do как из .forms import tbmstappraisalschedForm –

+0

проблема решена ?? –

Смежные вопросы