Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion makourse/course/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,19 @@ class ScheduleAdmin(admin.ModelAdmin):
admin.site.register(Schedule, ScheduleAdmin)

class ScheduleEntryAdmin(admin.ModelAdmin):
list_display = ('pk', 'schedule', 'num', 'entry_name')
list_display = ('pk', 'get_schedule', 'num', 'get_entry_name')

def get_schedule(self, obj):
return obj.schedule if obj.schedule else "N/A"
get_schedule.short_description = "Schedule"

def get_entry_name(self, obj):
return obj.entry_name if obj.entry_name else "N/A"
get_entry_name.short_description = "Entry Name"

admin.site.register(ScheduleEntry, ScheduleEntryAdmin)


class AlternativePlaceAdmin(admin.ModelAdmin):
list_display = ('pk', 'schedule_entry', 'name')
admin.site.register(AlternativePlace)
Expand Down
3 changes: 2 additions & 1 deletion makourse/course/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
class CreateMyPlaceSerializer(serializers.ModelSerializer):
class Meta:
model = MyPlace
fields = '__all__'
fields = ['id', 'place_name', 'address', 'latitude', 'longitude']



class ListMyPlaceSerializer(serializers.ModelSerializer):
Expand Down
2 changes: 1 addition & 1 deletion makourse/course/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from .views import *

urlpatterns = [
path('myplace/<int:pk>', MyPlaceView.as_view()), # 나만의 장소 추가(post), 목록조회(get)
path('myplace', MyPlaceView.as_view()), # 나만의 장소 추가(post), 목록조회(get)
path('myplace/<int:myplace_id>', MyPlaceDetailView.as_view()), # 나만의 장소 삭제(delete), 수정(patch)

# 세부 일정
Expand Down
32 changes: 14 additions & 18 deletions makourse/course/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,13 @@ class MyPlaceView(APIView):
400: openapi.Response('Validation error'),
}
)
def post(self, request, pk, *args, **kwargs):
request.data['user'] = pk
# request.user.id
# 일단 url로 user pk 받기
serializer = CreateMyPlaceSerializer(data=request.data)
def post(self, request, *args, **kwargs):
serializer = CreateMyPlaceSerializer(data=request.data, context={'request': request})

if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
serializer.save(user=request.user)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


# 나만의 장소 목록 조회
Expand All @@ -41,10 +38,10 @@ def post(self, request, pk, *args, **kwargs):
operation_summary="나만의 장소 목록 조회",
responses={200: ListMyPlaceSerializer(many=True)}
)
def get(self, request, pk, *args, **kwargs):
my_places = MyPlace.objects.filter(user=pk)
def get(self, request, *args, **kwargs):
my_places = MyPlace.objects.filter(user=request.user)
serializer = ListMyPlaceSerializer(my_places, many=True)
return Response(serializer.data, status=200)
return Response(serializer.data, status=status.HTTP_200_OK)



Expand All @@ -59,10 +56,9 @@ class MyPlaceDetailView(APIView):
responses={204: openapi.Response("Place deleted successfully")},
)
def delete(self, request, myplace_id, *args, **kwargs):
my_place = get_object_or_404(MyPlace, pk=myplace_id) # user=request.user 넣기
my_place = get_object_or_404(MyPlace, pk=myplace_id, user=request.user)
my_place.delete()

return Response({"message":"My place deleted"}, status=204)
return Response({"message": "My place deleted"}, status=status.HTTP_204_NO_CONTENT)


# 나만의 장소 수정
Expand All @@ -76,13 +72,13 @@ def delete(self, request, myplace_id, *args, **kwargs):
},
)
def patch(self, request, myplace_id, *args, **kwargs):
my_place = get_object_or_404(MyPlace, pk=myplace_id) # user=request.user 넣기
serializer = CreateMyPlaceSerializer(my_place, data=request.data, partial=True)
my_place = get_object_or_404(MyPlace, pk=myplace_id, user=request.user)
serializer = CreateMyPlaceSerializer(my_place, data=request.data, partial=True, context={'request': request})

if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


# 스케줄 속 각 일정
Expand Down