인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

서태영님의 프로필 이미지
서태영

작성한 질문수

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

포스트 수정 페이지에 태그 선택 칸 추가하기

아래 Cooper Bean님과 동일한 오류가 발생하여 질문 남깁니다.

작성

·

239

0

 
지금 강의 마지막 부분에서 이런 에러가 발생했습니다.
만들고 있는 홈페이지에서 tag 수정기능은 제대로 작성하는데, 테스트에서는 통과를 못하고 있습니다.

이번 강의에서 진행한 내용 중 오타는 발견 못했는데, test 폴더에 test_update_post 내용 중 잘못된 것이 있나해서 github 주소와같이 보내봅니다. 감사합니다.

github 주소 :https://github.com/ATM7587/do_it_django_inflearn_2021
 
def test_update_post(self):
update_post_url = f'/blog/update_post/{self.post_003.pk}/'

# 로그인 하지 않은 상태에서 접근 하는 경우
response = self.client.get(update_post_url)
self.assertNotEqual(response.status_code, 200)

# 로그인은 했지만, 작성자가 아닌 경우
self.assertNotEqual(self.post_003.author, self.user_trump)
self.client.login(username='trump', password='somepassword')
response = self.client.get(update_post_url)
self.assertNotEqual(response.status_code, 200) # user_obama가 아니므로 정상실행이 되지 않음

# 작성자(obama)가 접근하는 경우
self.assertEqual(self.post_003.author, self.user_obama)
self.client.login(username='obama', password='somepassword')
response = self.client.get(update_post_url)
self.assertEqual(response.status_code, 200) # user_obama 이므로 정상적으로 실행됨
soup = BeautifulSoup(response.content, 'html.parser')

self.assertEqual('Edit Post - Blog', soup.title.text)
main_area = soup.find('div', id='main-area')
self.assertIn('Edit Post', main_area.text)

tag_str_input = main_area.find('input', id='id_tags_str')
self.assertTrue(tag_str_input)
self.assertIn('파이썬 공부; python', tag_str_input.attrs['value'])

response = self.client.post(
update_post_url,
{
'title': '세 번째 포스트를 수정했습니다.',
'content': '안녕 세계? 우리는 하나!',
'category': self.category_music.pk,
'tags_str': '파이썬 공부; 한글 태그, some tag' # 위의 '파이썬 공부; python' 에서 'python'은 사라지고 '파이썬 공부' 만 남는지 확인
},
follow=True
)
soup = BeautifulSoup(response.content, 'html.parser')
main_area = soup.find('div', id='main-area')
self.assertIn('세 번째 포스트를 수정했습니다.', main_area.text)
self.assertIn('안녕 세계? 우리는 하나!', main_area.text)
self.assertIn(self.category_music.name, main_area.text)

self.assertIn('파이썬 공부', main_area.text)
self.assertIn('한글 태그', main_area.text)
self.assertIn('some tag', main_area.text)
self.assertNotIn('python', main_area.text)

답변 3

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

이게 다시 확인해보니 5분짜리 영상이 빠져있었네요. 

혼란을 드려 죄송합니다 

 

https://www.inflearn.com/course/%EB%91%90%EC%9E%87-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%EA%B0%9C%EB%B0%9C/lecture/95398?tab=curriculum

서태영님의 프로필 이미지
서태영
질문자

확인했습니다.. 감사합니다!

0

서태영님의 프로필 이미지
서태영
질문자

부주의 때문에 일어난 오류인데도 친절하게 확인해주셔서 정말 감사합니다.!
남은 강의 더 집중해서 듣고 취업준비 열심히 하겠습니다.

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

하하 별말씀을요. 화이팅입니다. 

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

안녕하세요. 깃헙에서 받아서 보니, 빠진 부분이 있네요. 

{% if post.tags.exists %}
<i class="fas fa-tags"></i>
{% for tag in post.tags.iterator %}
<a href="{{ tag.get_absolute_url }}"><span class="badge bg-light text-dark">{{ tag }}</span></a>
{% endfor %}
<br/>
<br/>
{% endif %}

 

태그를 보여주는 이 부분이 post_detail.html에 빠져있습니다. 

이 부분은 "포스트 목록 페이지에 tag 추가하기" 할 때 했는데, 이 부분을 놓치고 오신 것 같아요. 

 

서태영님의 프로필 이미지
서태영

작성한 질문수

질문하기