object
장고 object
에서 원하는 데이터를 파이썬 문법으로 빼내는 방법
my_preference = ArticleComment.objects.filter(author_id=request.user.id, rating=5) # 사용자가 5점을 준 코멘트 가져오기
print(my_preference)
# <QuerySet [<ArticleComment: ArticleComment object (47)>]>
위와 같이 장고 object
는 QuerySet
이라는 형태를 가지고 있기 때문에,
my_preference
를 리스트화를 시켜 파이썬 문법으로 편하게 데이터를 뽑을 수 있습니다.
# 벨류들 뽑아주기
my_preference.values()
print(my_preference.values())
# <QuerySet [{'id': 47, 'article_id': 6, 'author_id': 4, 'comment': 'ㅇㅇ', 'rating': 5, 'created_at': datetime.datetime(2022, 6, 9, 9, 57, 0, 178463, tzinfo=datetime.timezone.utc), 'updated_at': datetime.datetime(2022, 6, 9, 9, 57, 0, 178463, tzinfo=datetime.timezone.utc)}]>
# QuerySet 형태를 list형태로 바꿔주기
list(my_preference.values())
print(list(my_preference.values())
# [{'id': 47, 'article_id': 6, 'author_id': 4, 'comment': 'ㅇㅇ', 'rating': 5, 'created_at': datetime.datetime(2022, 6, 9, 9, 57, 0, 178463, tzinfo=datetime.timezone.utc), 'updated_at': datetime.datetime(2022, 6, 9, 9, 57, 0, 178463, tzinfo=datetime.timezone.utc)}]
다음과 같이 list()로 QuerySet에서 list의 형태로 바꿔줍니다.
dict in list
num = list(my_preference.values()) # article_id를 빼오기 위해 리스트화
for i in num:
drama_num = i['article_id']
print(drama_num)
# 6
마지막으로
for
문을 이용해서 리스트안의 딕셔너리 값을 추출할 수 있습니다.
오늘도 그림실력 장난 없으셨다 .......👍