Limit queryset to one object and return the last object instead of list.
(self)
| 829 | return queryset._as_single() |
| 830 | |
| 831 | def last(self) -> QuerySetSingle[MODEL | None]: |
| 832 | """ |
| 833 | Limit queryset to one object and return the last object instead of list. |
| 834 | """ |
| 835 | queryset = self._clone() |
| 836 | |
| 837 | if queryset._orderings: |
| 838 | new_ordering = [ |
| 839 | (field, Order.desc if order_type == Order.asc else Order.asc) |
| 840 | for field, order_type in queryset._orderings |
| 841 | ] |
| 842 | elif pk := self.model._meta.pk: |
| 843 | new_ordering = [(pk.model_field_name, Order.desc)] |
| 844 | else: |
| 845 | raise FieldError( |
| 846 | f"QuerySet has no ordering and model {self.model.__name__} has no pk defined" |
| 847 | ) |
| 848 | queryset._orderings = new_ordering |
| 849 | return queryset._as_single() |
| 850 | |
| 851 | def get(self, *args: Q, **kwargs: Any) -> QuerySetSingle[MODEL]: |
| 852 | """ |
nothing calls this directly
no test coverage detected