Example #1
0
    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
Example #2
0
    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)
Example #3
0
    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)