Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

p.366 테스트 시 응답코드 301

3 years, 1 month ago

xlqnxl xlqnxl

FAIL: test_tag_page (blog.tests.TestView)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "D:\GitHub\doitdjangoatoz\blog\tests.py", line 46, in test_tag_page

    self.assertEqual(response.status_code, 200)

AssertionError: 301 != 200


이렇게 나오는데 뭐가 문제 일까요?

도움될만 한 코드 몇개 적어드리면

def test_tag_page(self):
response = self.client.get(self.tag_hello.get_absolute_url())
self.assertEqual(response.status_code, 200) # 301로 문제 발생
self.tag_hello = Tag.objects.create(name='hello', slug='hello') # setUp함수의 tag_hello
class Tag(models.Model):
name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(max_length=200, unique=True, allow_unicode=True)

def __str__(self):
return self.name

def get_absolute_url(self):
return f'/blog/tag/{self.slug}'
path('tag/<str:slug>/', views.tag_page), # blog/urls.py
뭐가 문제일까요? 

taegon
taegon   3 years, 1 month ago

Tag 클래스에서 절대경로를 리턴해 줄때, 마지막에 슬래쉬가 빠졌습니다.

    def get_absolute_url(self):
        return f'/blog/tag/{self.slug}'

아래와 같이 마지막에 슬래쉬(/)를 추가해주셔야 합니다. 사실 서비스는 정상적으로 동작할텐데, 마지막에 슬러쉬가 빠진채로 전달되면, 서버에서 슬래쉬를 추가하게 됩니다. 이러면서 다음부터는 슬래쉬를 붙인 주소로 접속하라고 요청한 페이지와 다른주소(슬래쉬가 붙은 주소)로 redirection되어 보여주고 있음을 알려주는 코드가 301 코드입니다. 

    def get_absolute_url(self):
        return f'/blog/tag/{self.slug}/'

해결되셨길 바랍니다. 고맙습니다.

Updated: Oct. 14, 2021, 9:54 a.m.

eaoaeaoa@naver.com
eaoaeaoa@naver.com   2 years, 9 months ago

여기서 한 두시간 이상 날린듯 ㅜㅠ.ㅜ 감사합니다

Updated: Feb. 2, 2022, 2:32 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A