해결된 질문
작성
·
946
1
거듭되는 질문에 죄송합니다;
43강 수강중인데 기능은 제대로 구현됬으나,
subscribe/list/로 접속할때
pycharm console창에 계속 아래와 같은 메세지가 나옵니다.
무슨 순서 관련인것 같긴한데 구독페이지 기능은 영상처럼 구현은 되고 있고 무엇이 문제인가요?
filter 에 순서를 지정해줘야하는건가요??
에러 내용:
UnorderedObjectListWarning: Pagination may yield
inconsistent results with an unordered object_list: <class 'projectapp.models.Project'> QuerySet.
return self.paginator_class(
답변 3
1
질문을 해주시면 제가 더 좋습니다! ㅎㅎ
질문하신다구 죄송해하실 필요 저어어어언혀 없습니다
아무튼 해당 기능이 잘 구현은 되는데, 해당 경고가 뜨는게 왜인지 여쭤보시는것 같은데,
아무래도 해당 경고는 Project list 를 가져오는 과정에서,
기본 정렬 순서를 어떤 값 기준으로 할 것인지에 대한 정보가 없어 생기는 경고 같습니다.
기본정렬 순서가 없다는 것은 DB에 해당 객체들을 가져오는 Query를 보냈을때,
돌아오는 객체들의 순서가 임의로 변할수 있다는 것이죠.
그래서 경고가 뜨는 것으로 보입니다.
User 가 구독한 모든 project_list 를 가져오는 과정에 정렬을 추가하게 되면, 문제가 되지 않을것 같습니다.
Project.objects.filter(user=self.request.user).order_by('-pk') 와 같이
정렬을 추가해주거나,
Project 모델 안에 Meta 클래스로
class Meta:
ordering = ['-pk']
등 과 같이 기본정렬 순서를 적어주시는것도 해당 경고를 없앨수 있지 않을까 싶습니다.
도움이 되셨으면 좋겠네요.
만약 더 궁금한 점이 있으시거나 해결이 되지 않으셨다면 또 질문 남겨주시길 바랍니다!
0
0
Project 안에 Meta를 설정해줘도 반응이 없습니다.
subscribeapp에 view 안에 잇는 이 곳인가요?
def get_queryset(self):
projects = Subscription.objects.filter(user=self.request.user).values_list('project')