类型错误:实例方法至少需要两个参数,得到0个
Django 1.1.2 和 Python 2.6.5
我在执行一个看起来很简单的查询时,总是遇到这个错误。这个问题看起来和http://code.djangoproject.com/ticket/7204上描述的情况一模一样。不过,我使用的是Django 1.1.2,应该已经修复了这个错误。有没有人遇到过类似的情况?
这是构建查询的代码:
def get_some_data(self, start_date, end_date):
qset = Transaction.txn_objects.get_transactions_between(self.business,
start_date,
end_date)
income_qset = qset.filter(invoiceitem__invoice__customer = self)
income_qset = income_qset.exclude(
account=F("invoiceitem__taxtypes__account_payable"))
sums = income_qset.aggregate(models.Sum('credit_amount')) # fails here
这是一个简化版的错误追踪信息(不是很有用):
File ".../models.py" in get_income_between
200. sums = income_qset.aggregate(models.Sum('credit_amount'))
File ".../lib/python2.6/site-packages/django/db/models/query.py" in aggregate
274. query = self.query.clone()
File ".../lib/python2.6/site-packages/django/db/models/sql/query.py" in clone
201. obj.where = deepcopy(self.where, memo=memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
173. y = copier(memo)
File ".../lib/python2.6/site-packages/django/utils/tree.py" in __deepcopy__
61. obj.children = deepcopy(self.children, memodict)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_list
228. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
173. y = copier(memo)
File ".../lib/python2.6/site-packages/django/utils/tree.py" in __deepcopy__
61. obj.children = deepcopy(self.children, memodict)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_list
228. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
173. y = copier(memo)
File ".../lib/python2.6/site-packages/django/utils/tree.py" in __deepcopy__
61. obj.children = deepcopy(self.children, memodict)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_list
228. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
173. y = copier(memo)
File ".../lib/python2.6/site-packages/django/utils/tree.py" in __deepcopy__
61. obj.children = deepcopy(self.children, memodict)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_list
228. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
235. y.append(deepcopy(a, memo))
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
338. state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
255. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py" in _reconstruct
323. y = callable(*args)
File "/usr/lib/python2.6/copy_reg.py" in __newobj__
93. return cls.__new__(cls, *args)
Exception Type: TypeError at /reports/income_expense/by_customer/32/
Exception Value: instancemethod expected at least 2 arguments, got 0
1 个回答
1
为了帮助可能遇到这个问题的其他人,这个错误是因为同时使用了django-multilingual和django.db的F对象造成的。通过重写代码,去掉F对象,问题就解决了。
其实,根本原因是Python中的一个bug,想了解更多信息可以查看这个链接:http://bugs.python.org/issue1515