• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

43강 구독한 게시판의 게시글만 볼 수 있는 구독페이지의 에러

21.02.12 10:50 작성 조회수 819

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

넵 맞습니다!

43강에서 진행한 내용에서 해당 요청을 보내는 유저가 구독한 프로젝트의 리스트를 찾는 과정입니다.

0

Hj S님의 프로필

Hj S

질문자

2021.02.12

Project 안에 Meta를 설정해줘도 반응이 없습니다.

subscribeapp에 view 안에 잇는 이 곳인가요?

def get_queryset(self):
projects = Subscription.objects.filter(user=self.request.user).values_list('project')