django-multilingual-ng icon indicating copy to clipboard operation
django-multilingual-ng copied to clipboard

F Object + Multilingual = instancemethod expected at least 2 arguments, got 0

Open geomin opened this issue 15 years ago • 0 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

  1.                 response = callback(request, _callback_args, *_callback_kwargs)
    
    File "/home/georg/Projects/myreprod/views.py" in index
  2. UserProfile.objects.explode()
    
    File "/home/georg/Projects/myreprod/models.py" in explode
  3.     print profiles
    
    File "/home/georg/repository/django/db/models/query.py" in repr
  4.     data = list(self[:REPR_OUTPUT_SIZE + 1])
    
    File "/home/georg/repository/django/db/models/query.py" in getitem
  5.         qs = self._clone()
    
    File "/home/georg/repository/django/db/models/query.py" in _clone
  6.     query = self.query.clone()
    
    File "/home/georg/repository/django/db/models/sql/query.py" in clone
  7.     obj.having = deepcopy(self.having, memo=memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  8.             y = copier(memo)
    
    File "/home/georg/repository/django/utils/tree.py" in deepcopy
  9.     obj.children = deepcopy(self.children, memodict)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  10.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_list
  11.     y.append(deepcopy(a, memo))
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  12.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
  13.     y.append(deepcopy(a, memo))
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  14.             y = _reconstruct(x, rv, 1, memo)
    
    File "/usr/lib/python2.6/copy.py" in _reconstruct
  15.         state = deepcopy(state, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  16.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
  17.     y[deepcopy(key, memo)] = deepcopy(value, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  18.             y = _reconstruct(x, rv, 1, memo)
    
    File "/usr/lib/python2.6/copy.py" in _reconstruct
  19.         state = deepcopy(state, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  20.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
  21.     y[deepcopy(key, memo)] = deepcopy(value, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  22.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
  23.     y[deepcopy(key, memo)] = deepcopy(value, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  24.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_tuple
  25.     y.append(deepcopy(a, memo))
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  26.             y = _reconstruct(x, rv, 1, memo)
    
    File "/usr/lib/python2.6/copy.py" in _reconstruct
  27.         state = deepcopy(state, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  28.     y = copier(x, memo)
    
    File "/usr/lib/python2.6/copy.py" in _deepcopy_dict
  29.     y[deepcopy(key, memo)] = deepcopy(value, memo)
    
    File "/usr/lib/python2.6/copy.py" in deepcopy
  30.             y = _reconstruct(x, rv, 1, memo)
    
    File "/usr/lib/python2.6/copy.py" in _reconstruct
  31. y = callable(*args)
    
    File "/usr/lib/python2.6/copy_reg.py" in newobj
  32. return cls.**new**(cls, *args)
    

Exception Type: TypeError at / Exception Value: instancemethod expected at least 2 arguments, got 0

geomin avatar Aug 19 '10 13:08 geomin