👀 오늘 한 일
- 알고리즘 1문제 풀기
- 프로젝트 모델 세팅
📚 오늘 배운 것
- 장고 orm
😄 오늘의 TMI
피드 좋아요 기능을 공부하면서 장고 orm 명령어를 사용하는데 {모델명}. objects.create()를 사용할 때 foreign key 타입으로 구성된 필드를 정의해주려고 하는데 pk 값으로 입력하면 아래 에러가 발생한다.
ValueError: Cannot assign "1": "FeedLike.feed_id" must be a "Feed" instance.
전에는 pk값으로도 생성을 했던거 같은데 모델 인스턴스를 넣어달라고 하니 참조하려는 인스턴스를 select 해서 해결했지만 그 여파로 테스트 함수 몇 개가 작동하지 않아 지우게 되는 일이 생겼다.
get(), filter() 함수들은 pk으로 잘 작동되는데 create() 함수 호출 시에만 생기는 문제같다.
오늘은 알고리즘 문제를 푸는데 2시간이 걸렸다.. 이게 레벨 1이면 나중엔 얼마나 어려운 거지? ㅜㅜ
오늘의 알고리즘 문제
https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3
내 풀이
import re
def solution(new_id):
# 1단계 new_id 소문자로 변경
new_id = new_id.lower()
# 특수문자 ~!@#$%^&*()=+[{]}:?,<>/ 제거 ( ._- 빼고 다 제거)
new_id = re.sub(r"[^a-z0-9._-]", "", new_id)
# 마침표가 연속될 경우 하나의 마침표로 치환
id_index = len(new_id)
repeat_remove = []
i = 0
while i != id_index:
if i == id_index-1:
repeat_remove.append(new_id[i])
elif new_id[i] != '.':
repeat_remove.append(new_id[i])
else:
if new_id[i+1] != '.':
repeat_remove.append(new_id[i])
i += 1
new_id = ''.join(repeat_remove)
# 양 끝의 마침표 삭제
new_id = new_id.strip('.')
# 빈 문자열이면 a 대입
if new_id == '':
new_id = 'a'
# 16자 이상이면 16번째 이후로 모두 제거
new_id = new_id[0:15]
# 양 끝 마침표 삭제 한번 더!
new_id = new_id.strip('.')
# 2자 이하라면 3자가 될때까지 마지막문자 반복
id_index = len(new_id)-1
while id_index < 2:
new_id = new_id + new_id[id_index]
id_index += 1
answer = new_id
return answer
'Curriculum > AI웹개발자_내일배움캠프' 카테고리의 다른 글
Story 20. WIL (4) | 2022.03.14 |
---|---|
Story 19. TIL (0) | 2022.03.12 |
Story 17. TIL (0) | 2022.03.11 |
Story 16. TIL (0) | 2022.03.09 |
Story 15. TIL (0) | 2022.03.09 |