2010-09-17 129 views
2

Django的1.1.2 &的Python 2.6.5類型錯誤:instancemethod預計將有至少2個參數,得到0

我一直在執行一個看似無辜的queryset時收到此錯誤。看起來像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

對於別人誰可能會遇到這樣做的好處,該錯誤是由使用django-multilingual和django.db的F對象組合引起的。重寫代碼以消除F對象解決了這個問題。

根本原因實際上是Python中的一個bug,更多信息請參見http://bugs.python.org/issue1515

相關問題