현제의 현재이야기
[KLAE] 1229 개발일지 본문
쿼리셋 관련
- filter() 함수는 객체를 가져오는 것이 아니라 쿼리셋을 가져온다.
- 따라서 get() 함수를 사용해야 뽑아온 객체의 애트리뷰트를 이용할 수 있다.
@api_view(['GET'])
def recommend_test(request,pk):
user = User.objects.get(pk=pk)
choices = [1, 1, 1, 1] # request.data 실험용
if choices[0] == 1:
if choices[1] == 1:
if choices[2] == 1:
if choices[3] == 1:
result = 'A'
result_plant = Plant.objects.get(plant_code=result)
user.select = result_plant.id
user.save(update_fields=['select'])
serializer = RecommendSerializer(result_plant)
return Response(serializer.data)
- request.data 대신에 임시로 사용자가 선택한 선택지가 배열로 [1, 1, 1, 1] 온다고 가정했다.
- 일단 pk로 추천을 돌린 User를 불러오고, 거기에 임시로 select 필드에 저장시킨다.
- 그래서 result_plant의 id를 select에 넣은 뒤, 저장시키고 serialzier로 뱉는다.
class User(AbstractUser):
name = models.CharField(max_length = 20)
password = models.CharField(max_length=512)
email = models.CharField(max_length = 50, unique = True)
uuid = models.CharField(max_length = 512)
username = models.CharField(max_length = 20, unique=True)
select = models.CharField(max_length=50, null=True)
이렇게 잘 전송된다.
남은 것들
- 추천에 따른 데이터 넣기
- 이미지필드 해결하기
+) 추가
#식물추천테스트
@api_view(['GET'])
def recommend_test(request,pk):
user = User.objects.get(pk=pk)
result = map(str, [0, 0, 0, 0]) # request.data 실험용
result = "".join(result)
result_plant = Plant.objects.get(plant_code=result)
user.select = result_plant.id
user.save(update_fields=['select'])
serializer = RecommendSerializer(result_plant)
return Response(serializer.data)
- if 문 돌리기 너무 귀찮아서 아예 배열 받은 것을 합쳐서, 그것을 plant_code로 만들었다.
- 이제 데이터베이스에 0000, 0001, 0002, 0003 처럼 코드를 plant_code로 넣으면 된다!
이런 식으로
+) 추가2
기존에 us-east로 aws 리전이 설정되어 있어서 northeast 한국으로 바꿨다!
참고한 사이트
훨씬 빨라졌다! 다행
'DRF > KLAE' 카테고리의 다른 글
[KLAE] 0102 개발일지 (1) | 2023.01.02 |
---|---|
[KLAE] 1230 개발일지 (0) | 2022.12.30 |
[KLAE] 1228 개발일지 (0) | 2022.12.28 |
[KLEA] 1128 개발일지 (좋아요 기능) (0) | 2022.11.28 |
[KLEA] 1125 개발일지 (django와 Mysql 연결, GCP) (0) | 2022.11.26 |
Comments