(self)
| 1869 | ) |
| 1870 | |
| 1871 | def test_ordering_with_extra(self): |
| 1872 | # Ordering of extra() pieces is possible, too and you can mix extra |
| 1873 | # fields and model fields in the ordering. |
| 1874 | self.assertSequenceEqual( |
| 1875 | Ranking.objects.extra( |
| 1876 | tables=["django_site"], order_by=["-django_site.id", "rank"] |
| 1877 | ), |
| 1878 | [self.rank1, self.rank2, self.rank3], |
| 1879 | ) |
| 1880 | |
| 1881 | sql = "case when %s > 2 then 1 else 0 end" % connection.ops.quote_name("rank") |
| 1882 | qs = Ranking.objects.extra(select={"good": sql}) |
| 1883 | self.assertEqual( |
| 1884 | [o.good for o in qs.extra(order_by=("-good",))], [True, False, False] |
| 1885 | ) |
| 1886 | self.assertSequenceEqual( |
| 1887 | qs.extra(order_by=("-good", "id")), |
| 1888 | [self.rank3, self.rank2, self.rank1], |
| 1889 | ) |
| 1890 | |
| 1891 | # Despite having some extra aliases in the query, we can still omit |
| 1892 | # them in a values() query. |
| 1893 | dicts = qs.values("id", "rank").order_by("id") |
| 1894 | self.assertEqual([d["rank"] for d in dicts], [2, 1, 3]) |
| 1895 | |
| 1896 | def test_ticket7256(self): |
| 1897 | # An empty values() call includes all aliases, including those from an |
nothing calls this directly
no test coverage detected