尝试从我的表单clean
方法调用自定义模型方法时出现问题。
这是我的模型的一部分:
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)
通过这个错误,我可以假设我必须传递方法(File实例),但我真的不知道这意味着什么以及如何做到。
你能让我知道我在这里做错了什么,以及如何解决这个问题呢?
get_nzb_data
装饰器将@classmethod
方法设为类方法,解决。
答案 0 :(得分:3)
你不能打电话
nzb_data = File.get_nzb_data(nzb_absolute)
因为你使用的是类,而不是对象。
你有两个选择。
将get_nzb_data
设为@classmethod
。请参阅http://docs.python.org/library/functions.html#classmethod
创建一个File实例并使用它。 temp_f= File(...)
。然后是temp_f.get_dnb_data
。
答案 1 :(得分:1)
我可能在这里遗漏了一些东西,但我认为你的方法'get_nzb_data'应该有一个@classmethod装饰器。否则,它需要File类型的'self'参数,这会产生错误。