def test_values(self): SomeModel.objects.create(p='foo', q=1) SomeModel.objects.create(p='bar', q=2) self.assertEqual( SomeModel.objects.filter().order_by('-q').values('q'), QuerySet( [{'q': 2},{'q': 1},], model=SomeModel ) ) self.assertEqual( SomeModel.objects.filter().order_by('-q').values('p', 'q'), QuerySet( [ {'q': 2, 'p': 'bar'}, {'q': 1, 'p': 'foo'}, ], model=SomeModel ) ) self.assertSetEqual( set(SomeModel.objects.filter().order_by('-q').values()[0].keys()), {'p', 'q', 'created', 'updated', 'id'} )
def test_values_list(self): SomeModel.objects.create(p='foo', q=1) SomeModel.objects.create(p='bar', q=2) self.assertEqual( SomeModel.objects.filter().order_by('-q').values_list('p', 'q'), QuerySet( [ ('bar', 2,), ('foo', 1,) ], model=SomeModel ) ) self.assertEqual( SomeModel.objects.filter().order_by('-q').values_list('q', 'p'), QuerySet( [ (2, 'bar',), (1, 'foo',) ], model=SomeModel ) )
def test_reverse(self): SomeModel(p='foo', q=1) SomeModel(p='foo', q=2) self.assertEqual( SomeModel.objects.filter().order_by('q').reverse().values_list( 'q'), QuerySet([(2, ), (1, )], model=SomeModel)) self.assertEqual( SomeModel.objects.filter().order_by( 'q').reverse().reverse().values_list('q'), QuerySet([(1, ), (2, )], model=SomeModel))
def test_order_by(self): SomeModel(p='foo', q=3) SomeModel(p='foo', q=1) SomeModel(p='foo', q=2) self.assertEqual( SomeModel.objects.filter().order_by('q').values_list('q'), QuerySet([(1, ), (2, ), (3, )], model=SomeModel)) self.assertEqual( SomeModel.objects.filter().order_by('-q').values_list('q'), QuerySet([(3, ), (2, ), (1, )], model=SomeModel)) with self.assertRaises(AttributeError): SomeModel.objects.filter().order_by()
def filter(self, **kwargs): q = Q(**kwargs) return QuerySet( filter(q.comparator, self._object_store), model=self.model )
def test_values_list_flat(self): SomeModel(p='foo', q=1) SomeModel(p='bar', q=2) self.assertEqual( SomeModel.objects.filter().order_by('-q').values_list('p', flat=True), QuerySet(['bar', 'foo'], model=SomeModel)) with self.assertRaises(TypeError): SomeModel.objects.filter().order_by('-q').values_list('p', 'q', flat=True)
def all(self): return QuerySet( self._object_store, model=self.model )
def all(self): return QuerySet(self._object_store)
def get_queryset(self) -> QuerySet: return QuerySet(self.store, model=self.model)