Django_BE
-
[Django]여러개의 정보를 가져와서 serializer을 적용하고 싶을때(many=True)Django_BE 2023. 10. 20. 01:15
이 상태에서는 안되다가 여기에서는 된다! 포인트는 many=True many=True는 Django REST framework의 Serializer에서 사용되는 옵션 중 하나입니다. 이 옵션은 다수의 객체(여러 개의 모델 인스턴스)를 직렬화할 때 사용됩니다. 일반적으로 Serializer는 하나의 모델 인스턴스를 직렬화하는 데 사용됩니다. 그러나 경우에 따라 여러 모델 인스턴스를 동시에 직렬화해야 할 때가 있습니다. 이때 many=True를 사용하여 여러 모델 인스턴스를 직렬화할 수 있습니다.
-
[Django]is_validDjango_BE 2023. 10. 13. 19:15
input_serializer.is_valid(raise_exception=True) 여기에서 is_valid(raise_exception = True)가 궁금하다 is_valid() 메서드는 직렬화된 데이터가 유효한지 여부를 확인합니다. 이는 필수 필드, 데이터 형식, 길이 등과 같은 다양한 유효성 검사를 수행합니다. raise_exception=True는 옵션입니다. 만약 raise_exception이 True로 설정되어 있으면, 데이터가 유효하지 않을 경우 예외를 발생시킵니다. 이렇게 하면 클라이언트에게 오류 메시지를 반환하고 요청을 중단시킬 수 있습니다. 만약 raise_exception이 False로 설정되어 있으면, 단순히 유효성 검사 결과를 반환하고 예외를 발생시키지 않습니다.
-
[Django]Django의 permission_classesDjango_BE 2023. 9. 10. 01:34
class CuratedStoryDetailApi(APIView): permission_classes = (AllowAny, ) class CurationCreateApi(APIView): permission_classes = (IsVerifiedOrSdpAdmin, ) Django REST framework (DRF)에서는 다양한 권한 클래스를 제공하여 웹 API의 접근을 제어하고 사용자 인증 및 권한을 관리할 수 있습니다. 다음은 일반적으로 사용되는 DRF 권한 클래스 몇 가지입니다: 1. `IsAuthenticated`: - 요청한 사용자가 인증된 경우에만 API 액세스를 허용합니다. 2. `IsAdminUser`: - 요청한 사용자가 슈퍼유저 (admin)인 경우에만 API 액세스를 허용합니다. ..
-
[Django]일대다 관계에 있을때Django_BE 2023. 9. 8. 01:36
semicategory = models.ManyToManyField( 'SemiCategory', related_name='mysemicategory') 위와 같이 써주고 따로 on_delete나 null 혹은 blank의 조건을 달지 않는다 story = models.ManyToManyField( 'stories.Story', through='Curation_Story', related_name='curations') 이건 story와 cutaion 사이의 관계를 Curation_Story라는 중개모델이 있다는 뜻이다
-
[Django]model 만들기Django_BE 2023. 9. 8. 01:21
on_delete=models.SET_NULL, null=True, blank=False on_delete=models.SET_NULL: 이 부분은 ForeignKey 필드의 삭제 동작을 정의합니다. models.SET_NULL로 설정되어 있으므로 참조된 객체가 삭제될 때 해당 ForeignKey 필드의 값을 NULL로 설정 -> forest 글 같은 경우, 유저가 삭제되어도 글은 유지, 유저 부분은 비우기 null=True: 이 부분은 데이터베이스에서 해당 필드가 NULL일 수 있는지 여부를 나타냅니다. True로 설정되어 있으므로 이 ForeignKey 필드는 데이터베이스에서 NULL 값을 가질 수 있습니다. 다시 말해, 연결된 객체가 없을 때 이 필드는 NULL이 될 수 있습니다. blank=Fal..
-
[Django]annotate/Concat/F가 궁금해요Django_BE 2023. 7. 24. 23:00
included_curation = Curation.objects.filter(short_curations__story__id=story_id).annotate( rep_pic=Concat( Value(settings.MEDIA_URL), F('photos__image'), output_field=CharField(), ), ) 여기에서 annotate부터의 코드가 어떻게 구성된것인지 살펴보자. annotate()메서드는 장고의 QuerySet API에서 활용되는 함수로, 데이터베이스 질의 결과에 추가적인 정보를 계산하여 결과에 포함시키는 역할을 한다. 예시 코드에서는 'rep_pic'이라는 새로운 필드를 계산하여 결과에 포함하고 있다. 'rep_pic'-> annotate()메서드를 이용하여 쿼리 결과..
-
[Django]일대다 관계에 있는 객체의 거꾸로 접근(values_list, pk__in)Django_BE 2023. 7. 21. 02:34
curation_story = Curation_Story.objects.filter(story_id=your_story_id) curations = curation_story.values_list('curation', flat=True) curation_objects = Curation.objects.filter(pk__in=curations) 위의 코드에서 your_story_id는 원하는 스토리의 ID입니다. 이 코드를 사용하여 해당 스토리와 관련된 Curation 객체들을 가져올 수 있습니다. 먼저 Curation_Story 모델에서 원하는 스토리(your_story_id)와 관련된 Curation_Story 객체들을 가져옵니다. 이때 filter() 메서드를 사용하여 story_id가 your_s..
-
[Django]StoryIncludedCurationAPIDjango_BE 2023. 7. 21. 02:02
스토리가 포함된 큐레이션 리스트를 반환하는 api를 개발한다이를 위해, 먼저 Curation의 모델 구조를 파악했다.Curation 과 Story는 일대다의 관계이므로 큐레이션이 생성되는 Curation 필드와큐레이션과 스토리를 매핑하는 Curation_Story 필드가 있었다 이거 이해하는데 좀 걸렸다그 후에는 이미 존재하는 쿼리 구조를 파악하는 시간을 가졌다. 현재 curaiton_id가 주어지면 그에 해당하는 story_detail을 반환하는 CurationStoryDetail Api의 구조를 파악했다아래와 같다이를 내가 개발해야하는 api에 적용하여 이해한건 아래와 같다내가 한 계획: 첫번째 아이디어: curation_story 모델에서 story_id가 일치하는 큐레이션 리스트를 뽑아오자는 아이..