Django 1.10.4'ten 1.11.1'e yükselttim ve aniden testlerimi çalıştırdığımda şu mesajlardan bir ton alıyorum:
lib/python3.5/site-packages/rest_framework/pagination.py:208:
UnorderedObjectListWarning:
Pagination may yield inconsistent results with an unordered object_list:
<QuerySet [<Group: Requester>]>
paginator = self.django_paginator_class(queryset, page_size)
Bunu Django Sayfalandırma modülüne kadar takip ettim: https://github.com/django/django/blob/master/django/core/paginator.py#L100
Sorgu seti kodumla ilgili görünüyor:
return get_user_model().objects.filter(id=self.request.user.id)
Bu uyarı hakkında nasıl daha fazla ayrıntı bulabilirim? Görünüşe order_by(id)
göre her filtrenin sonuna bir eklemem gerekiyor , ancak hangi kodun order_by eklenmesini gerektirdiğini bulamıyorum (çünkü uyarı bir yığın izleme döndürmüyor ve bu nedenle testim sırasında rastgele oluyor Çalıştırmak).
Teşekkürler!
Düzenle:
Yani @KlausD kullanarak. ayrıntı ipucu, bu hataya neden olan bir teste baktım:
response = self.client.get('/api/orders/')
Bu gider OrderViewSet
ancak get_queryset içindeki hiçbir şey buna neden olmaz ve serileştirici sınıfındaki hiçbir şey buna neden olmaz. / Api / siparişlerini almak için aynı kodu kullanan ve buna neden olmayan başka testlerim var .... get_queryset'ten sonra DRF ne yapar?
https://github.com/encode/django-rest-framework/blob/master/rest_framework/pagination.py#L166
Sayfalandırmaya bir geri bildirim koyarsam, django dinlenme çerçevesi ile ilgili bir sürü şey elde ederim, ancak sorgularımdan hangisinin sipariş uyarısını tetiklediğini gösteren hiçbir şey yok.
-v 2
çoğu test koşucusunda)