コード例 #1
0
ファイル: models.py プロジェクト: kishan3/castcore
    def filter_kwargs(self, qs, now=datetime.now):
        # Support Count() as m2m__count
        field_name = self.annotated_field_name
        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if self.field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            field_value = now() - djangotimedelta.parse(field_value)
        elif self.field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            field_value = now() + djangotimedelta.parse(field_value)
        elif self.field_value.startswith('today-'):
            field_value = self.field_value.replace('today-', '')
            field_value = now().date() - djangotimedelta.parse(field_value)
        elif self.field_value.startswith('today+'):
            field_value = self.field_value.replace('today+', '')
            field_value = now().date() + djangotimedelta.parse(field_value)

        # F expressions
        if self.field_value.startswith('F_'):
            field_value = self.field_value.replace('F_', '')
            field_value = models.F(field_value)

        # set booleans
        if self.field_value == 'True':
            field_value = True
        if self.field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        return kwargs
コード例 #2
0
ファイル: models.py プロジェクト: bussiere/django-drip
    def apply(self, qs, now=datetime.now):
        field_name = '__'.join([self.field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #3
0
ファイル: models.py プロジェクト: pureblue/django-drip
    def filter_kwargs(self, qs, now=datetime.now):
        # Support Count() as m2m__count
        field_name = self.annotated_field_name
        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if self.field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            field_value = now() - djangotimedelta.parse(field_value)
        elif self.field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            field_value = now() + djangotimedelta.parse(field_value)
        elif self.field_value.startswith('today-'):
            field_value = self.field_value.replace('today-', '')
            field_value = now().date() - djangotimedelta.parse(field_value)
        elif self.field_value.startswith('today+'):
            field_value = self.field_value.replace('today+', '')
            field_value = now().date() + djangotimedelta.parse(field_value)

        # F expressions
        if self.field_value.startswith('F_'):
            field_value = self.field_value.replace('F_', '')
            field_value = models.F(field_value)

        # set booleans
        if self.field_value == 'True':
            field_value = True
        if self.field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        return kwargs
コード例 #4
0
ファイル: models.py プロジェクト: pombredanne/django-drip
    def apply(self, qs, now=datetime.now):
        field_name = '__'.join([self.field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #5
0
ファイル: models.py プロジェクト: eatclub/django-drip
    def apply(self, qs, now=datetime.now):
        if self.annotate != 'none':
            field_name = "%s__annotate%s" % (self.field_name, self.id)
            if self.annotate == 'sum':
                _kwargs = {
                    field_name: Sum(self.field_name)
                    }
            elif self.annotate == 'count':
                _kwargs = {
                    field_name: Count(self.field_name)
                    }
            elif self.annotate == 'min':
                _kwargs = {
                    field_name: Min(self.field_name)
                    }
            elif self.annotate == 'max':
                _kwargs = {
                    field_name: Max(self.field_name)
                    }
            elif self.annotate == 'avg':
                _kwargs = {
                    field_name: Avg(self.field_name)
                    }
            qs = qs.annotate(**_kwargs)
        else:
            field_name = self.field_name


        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #6
0
    def apply(self, qs, now=datetime.now):
        if self.annotate != 'none':
            field_name = "%s__annotate%s" % (self.field_name, self.id)
            if self.annotate == 'sum':
                _kwargs = {field_name: Sum(self.field_name)}
            elif self.annotate == 'count':
                _kwargs = {field_name: Count(self.field_name)}
            elif self.annotate == 'min':
                _kwargs = {field_name: Min(self.field_name)}
            elif self.annotate == 'max':
                _kwargs = {field_name: Max(self.field_name)}
            elif self.annotate == 'avg':
                _kwargs = {field_name: Avg(self.field_name)}
            qs = qs.annotate(**_kwargs)
        else:
            field_name = self.field_name

        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #7
0
ファイル: models.py プロジェクト: marcfro/django-drip
    def apply(self, qs, now=datetime.now):
        # Support Count() as m2m__count
        field_name = self.field_name
        if field_name.endswith('__count'):
            agg, _, _ = self.field_name.rpartition('__')
            field_name = 'num_%s' % agg
            qs = qs.annotate(**{field_name: models.Count(agg)})

        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #8
0
ファイル: models.py プロジェクト: webriders/django-drip
    def apply(self, qs, now=datetime.now):
        # Support Count() as m2m__count
        field_name = self.field_name
        if field_name.endswith('__count'):
            agg, _, _ = self.field_name.rpartition('__')
            field_name = 'num_%s' % agg
            qs = qs.annotate(**{field_name: models.Count(agg)})

        field_name = '__'.join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith('now-'):
            field_value = self.field_value.replace('now-', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith('now+'):
            field_value = self.field_value.replace('now+', '')
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == 'True':
            field_value = True
        if field_value == 'False':
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == 'filter':
            return qs.filter(**kwargs)
        elif self.method_type == 'exclude':
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)
コード例 #9
0
ファイル: models.py プロジェクト: suborbital/django-drip
    def apply(self, qs, now=datetime.now):
        # Support Count() as m2m__count
        field_name = self.field_name
        if field_name.endswith("__count"):
            agg, _, _ = self.field_name.rpartition("__")
            field_name = "num_%s" % agg
            qs = qs.annotate(**{field_name: models.Count(agg)})

        field_name = "__".join([field_name, self.lookup_type])
        field_value = self.field_value

        # set time deltas and dates
        if field_value.startswith("now-"):
            field_value = self.field_value.replace("now-", "")
            delta = djangotimedelta.parse(field_value)
            field_value = now() - delta
        elif field_value.startswith("now+"):
            field_value = self.field_value.replace("now+", "")
            delta = djangotimedelta.parse(field_value)
            field_value = now() + delta

        # set booleans
        if field_value == "True":
            field_value = True
        if field_value == "False":
            field_value = False

        kwargs = {field_name: field_value}

        if self.method_type == "filter":
            return qs.filter(**kwargs)
        elif self.method_type == "exclude":
            return qs.exclude(**kwargs)

        # catch as default
        return qs.filter(**kwargs)