• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

AssertionError가 뜹니다.

20.08.02 08:22 작성 조회수 37

0

삭제된 글입니다

답변 8

·

답변을 작성해보세요.

0

김우경님의 프로필

김우경

질문자

2020.08.04

그렇군요... 제대로 쓰고 테스트를 해보니 성공했습니다. 강의를 보고 따라하면서 실수가 있었던 것 같네요... 친절하게 알려주셔서 감사합니다!

0

방금 테스트를 해보니, pk, id로 해도 문제는 없습니다. 

이상해서 올려주신 테스트를 자세히 살펴보니, 

self.assertEqual(tag_001.post_set.first(), post_001)    # 하나의 tag는 자신을 가진 post들을 불러올 수 있다.
self.assertEqual(tag_001.post_set.last(), post_000) # 하나의 tag는 자신을 가진 post들을 불러올 수 있다.

이렇게 쓰셔야 하는데, post_001과, post_000을 반대로 쓰신 것 같은데요?

0

김우경님의 프로필

김우경

질문자

2020.08.03

id로 바꿔도 그대로입니다..!

0

제가 지금 밖이라 테스트를 해볼 수가 없네요. pk가 아니라 id로 해보면 될지도몰라요. 혹시 안되시면 답글 달아주세요. 집에 가서 테스트해보겠습니다 

0

김우경님의 프로필

김우경

질문자

2020.08.03

감사합니다. 하지만 ['-pk',]로 설정해도 처음과 똑같이 에러가 뜨네요......

0

['-pk',] 로 해야 하지 않을까요? orderby는 리스트 형태이거나 튜플 형태여야 하니까요. 

0

김우경님의 프로필

김우경

질문자

2020.08.03

ordering을[ '-created',]에서 -pk로 변경했더니 사진과 같은 에러가 뜹니다.. 이럴 땐 어떻게 해야하나요?

0

models.py의 Post 클래스(모델)에서 

class Meta:
    ordering = ['-created',]

가 설정되어 있나요? Post가 작성시점의 역순으로 정렬되기 때문에, tag_001.post_set.first() 하면, 가장 나중에 작성된 post_001이 나와야 합니다. 

이 부분이 설정되어 있지 않았다면 post_000이 나오게 되죠. 

혹시 class Meta가 제대로 설정되어 있는데도 이런 현상이 나타난다면, 컴퓨터가 너무 빨라서 첫번째와 두번째 생성되는 post의 시간이 동일하기 때문입니다. 이런 경우라면, ordering='-pk'로 수정해보세요.