Q&A
책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.
이 페이지는 의견 교환을 위해 따로 만든 페이지입니다. 책에서 이 페이지를 만드는 법을 직접적으로 다루지는 않습니다.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
p.366 테스트 시 응답코드 301
3 years ago
xlqnxlFAIL: 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 3 years 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 2 years, 9 months ago
여기서 한 두시간 이상 날린듯 ㅜㅠ.ㅜ 감사합니다
Updated: Feb. 2, 2022, 2:32 p.m.
Leave a Comment: