def contribute_to_class(self, cls, name): # Don't run on abstract classes if cls._meta.abstract: return c_field_name = currency_field_name(name) # Do not change default=self.default_currency.code, needed # for south compat. c_field = CurrencyField( max_length=3, price_field=self, default=self.default_currency, editable=False, choices=self.currency_choices ) c_field.creation_counter = self.creation_counter cls.add_to_class(c_field_name, c_field) super(MoneyField, self).contribute_to_class(cls, name) setattr(cls, self.name, MoneyFieldProxy(self)) from managers import money_manager if getattr(cls, '_default_manager', None): cls._default_manager = money_manager(cls._default_manager) else: cls._default_manager = money_manager(models.Manager()) cls._default_manager.model = cls if getattr(cls, 'objects', None): cls.objects = money_manager(cls.objects) else: cls.objects = money_manager(models.Manager()) cls.objects.model = cls
def contribute_to_class(self, cls, name): c_field_name = currency_field_name(name) c_field = CurrencyField(max_length=3, default=self.default_currency, editable=False) c_field.creation_counter = self.creation_counter cls.add_to_class(c_field_name, c_field) super(MoneyField, self).contribute_to_class(cls, name) setattr(cls, self.name, MoneyFieldProxy(self)) from managers import money_manager if hasattr(cls, '_default_manager'): cls._default_manager = money_manager(cls._default_manager) else: cls.objects = money_manager(models.Manager)