Exemple #1
0
    def test_filter__contains(self):
        obj = ContentType.objects.get(pk=1)
        obj2 = ContentType.objects.get(pk=2)

        set_obj_attrs(obj, {'tags': 'milk, tee'})
        set_obj_attrs(obj2, {'tags': 'milk'})

        r = filter_by_attrs(ContentType.objects.all(), tags__contains='milk')
        self.assertEqual(r.count(), 2)
        r = filter_by_attrs(ContentType.objects.all(), tags__contains='tee')
        self.assertEqual(r.count(), 1)
Exemple #2
0
    def test_filter__in(self):
        obj = ContentType.objects.get(pk=1)
        obj2 = ContentType.objects.get(pk=2)

        set_obj_attrs(obj, {'width': 200})
        set_obj_attrs(obj2, {'width': 400})

        r = filter_by_attrs(ContentType.objects.all(), width__in=[200, 400])
        self.assertEqual(r.count(), 2)
Exemple #3
0
    def test_filter__gt__lt(self):
        obj = ContentType.objects.get(pk=1)
        obj2 = ContentType.objects.get(pk=2)

        set_obj_attrs(obj, {'width': 200})
        set_obj_attrs(obj2, {'width': 400})

        r = filter_by_attrs(ContentType.objects.all(), width__gt=100).count()
        self.assertEqual(r, 2)

        r = filter_by_attrs(ContentType.objects.all(), width__lt=1000).count()
        self.assertEqual(r, 2)

        r = filter_by_attrs(ContentType.objects.all(), width__gt=300).count()
        self.assertEqual(r, 1)

        r = filter_by_attrs(ContentType.objects.all(), width__lt=300).count()
        self.assertEqual(r, 1)
Exemple #4
0
    def test_simple_filter(self):
        obj = ContentType.objects.get(pk=1)
        obj2 = ContentType.objects.get(pk=2)

        set_obj_attrs(obj, {'width': 200})
        set_obj_attrs(obj2, {'width': 400})

        r = filter_by_attrs(ContentType.objects.all(), width=200)[0]
        self.assertEqual(r.pk, obj.pk)
Exemple #5
0
def map(request, id):
    m = Map.objects.get(id=id)
    # names = [x.name for x in m.fields.all()]
    filters = {k: type_detect(v) for k, v in request.GET.items() if v}
    # print(repr(filters))
    objs = filter_by_attrs(m.mobjects.all(), **filters)
    y = prefetch_related_attrs(objs)
    y = dumps(create_yandex_poinrs_objects(y, operator.attrgetter('lat'),
                                           operator.attrgetter('lon'),
                                           operator.attrgetter('data')))
    f = dumps([x.name for x in m.fields.all() if x.is_filter])
    return render(request, 'map.html', {'map': m, 'yandex': y, 'filters': f})
Exemple #6
0
def map(request, id):
    m = Map.objects.get(id=id)
    # names = [x.name for x in m.fields.all()]
    filters = {k: type_detect(v) for k, v in request.GET.items() if v}
    # print(repr(filters))
    objs = filter_by_attrs(m.mobjects.all(), **filters)
    y = prefetch_related_attrs(objs)
    y = dumps(
        create_yandex_poinrs_objects(y, operator.attrgetter('lat'),
                                     operator.attrgetter('lon'),
                                     operator.attrgetter('data')))
    f = dumps([x.name for x in m.fields.all() if x.is_filter])
    return render(request, 'map.html', {'map': m, 'yandex': y, 'filters': f})
Exemple #7
0
    def test_unicode_name_filter(self):
        obj = ContentType.objects.get(pk=1)

        set_obj_attrs(obj, {u'тест': 200})
        r = filter_by_attrs(ContentType.objects.all(), **{u'тест': 200})[0]
        self.assertEqual(r.id, 1)