2009-03-11 1 views
1

У меня возникла проблема при попытке вызвать пользовательский метод модели из моего метода формы clean.Django: вызов настраиваемого метода модели из метода очистки формы. «Unbound Method»?

Вот [часть] моей модели:
http://dpaste.com/hold/12695/

Вот моя форма:
http://dpaste.com/hold/12699/

Я определенно возникли проблемы с линией 11 в моей форме:
nzb_data = File.get_nzb_data(nzb_absolute)

Возникла следующая ошибка:

TypeError at /admin/main/file/add/ 

unbound method get_nzb_data() must be called with File instance as first argument (got str instance instead) 

По этой ошибке я могу предположить, что мне нужно передать метод что-то (экземпляр файла), однако я действительно не знаю, что это значит и как я могу это сделать.

Можете ли вы сообщить мне, что я здесь делаю неправильно, и что можно сделать, чтобы решить проблему?


решаемые путем метода get_nzb_data метод класса с использованием @classmethod декоратора.

+0

пасты просто не имеют смысла для пользователей с аналогичной проблемой после вас – seb

ответ

3

Вы не можете назвать

nzb_data = File.get_nzb_data(nzb_absolute) 

потому, что вы используете класс, а не объект.

У вас есть два варианта.

  1. Сделать get_nzb_data@classmethod. См. http://docs.python.org/library/functions.html#classmethod

  2. Создайте экземпляр файла и используйте его. temp_f= File(...). Затем temp_f.get_dnb_data.

+0

Абсолютно правильно – aatifh

+0

Благодарим вас за это. Теперь он работает отлично. –

1

Возможно, мне что-то не хватает, но я думаю, что ваш метод'get_nzb_data 'должен иметь декоратор @classmethod. В противном случае он ожидает аргумент self типа File, и это дает эту ошибку.

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