F Object + Multilingual = instancemethod expected at least 2 arguments, got 0
geomin opened this issue · comments
Hi,
i ran into a problem with Django F objects and multilingual-ng, we have the follow models:
Django: 1.3 pre-alpha and 1.2.1 release
multilingual-ng: 0.1.45
models.py:
==================================================================
from django.contrib.auth.models import User
from django.db import models
import multilingual
from django.db.models.aggregates import Sum
from django.db.models import F, Q
class AccountType(models.Model):
class AccountTypeTranslation(multilingual.translation.TranslationModel):
name = models.CharField(max_length=32)
class UserProfileManager(models.Manager):
def explode(self):
profiles = self.get_query_set()#UserProfile.objects.all()
profiles = profiles.annotate(commission_sum=Sum('commission'))
profiles = profiles.filter(commission_sum__gte=F('payout_limit'))
#profiles = profiles.filter(commission__gte=F('payout_limit'))
print profiles.query
print profiles
return profiles
class UserProfile(models.Model):
payout_limit = models.PositiveIntegerField(default=20)
commission = models.PositiveIntegerField(default=20)
account_type = models.ForeignKey(AccountType, default=1)
user = models.ForeignKey(User)
objects = UserProfileManager()
==================================================================
call with: UserProfile.objects.explode()
IS: instancemethod expected at least 2 arguments, got 0
SHOULD: return a valid queryset
Problem: something goes wrong in deepcopy
NOTICE: it will work as soon you delete the field "account_type"
Backtrace:
Traceback:
File "/home/georg/repository/django/core/handlers/base.py" in get_response
-
File "/home/georg/Projects/myreprod/views.py" in index
response = callback(request, _callback_args, *_callback_kwargs)
-
File "/home/georg/Projects/myreprod/models.py" in explode
UserProfile.objects.explode()
-
File "/home/georg/repository/django/db/models/query.py" in repr
print profiles
-
File "/home/georg/repository/django/db/models/query.py" in getitem
data = list(self[:REPR_OUTPUT_SIZE + 1])
-
File "/home/georg/repository/django/db/models/query.py" in _clone
qs = self._clone()
-
File "/home/georg/repository/django/db/models/sql/query.py" in clone
query = self.query.clone()
-
File "/usr/lib/python2.6/copy.py" in deepcopy
obj.having = deepcopy(self.having, memo=memo)
-
File "/home/georg/repository/django/utils/tree.py" in deepcopy
y = copier(memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
obj.children = deepcopy(self.children, memodict)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_list
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y.append(deepcopy(a, memo))
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y.append(deepcopy(a, memo))
-
File "/usr/lib/python2.6/copy.py" in _reconstruct
y = _reconstruct(x, rv, 1, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
state = deepcopy(state, memo)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y[deepcopy(key, memo)] = deepcopy(value, memo)
-
File "/usr/lib/python2.6/copy.py" in _reconstruct
y = _reconstruct(x, rv, 1, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
state = deepcopy(state, memo)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y[deepcopy(key, memo)] = deepcopy(value, memo)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y[deepcopy(key, memo)] = deepcopy(value, memo)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y.append(deepcopy(a, memo))
-
File "/usr/lib/python2.6/copy.py" in _reconstruct
y = _reconstruct(x, rv, 1, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
state = deepcopy(state, memo)
-
File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
y = copier(x, memo)
-
File "/usr/lib/python2.6/copy.py" in deepcopy
y[deepcopy(key, memo)] = deepcopy(value, memo)
-
File "/usr/lib/python2.6/copy.py" in _reconstruct
y = _reconstruct(x, rv, 1, memo)
-
File "/usr/lib/python2.6/copy_reg.py" in newobj
y = callable(*args)
-
return cls.**new**(cls, *args)
Exception Type: TypeError at /
Exception Value: instancemethod expected at least 2 arguments, got 0