Closed ghost closed 6 years ago
backend login view 부분 구현하였습니다.
localhost:8000/accounts/login에서 테스트 해볼 수 있습니다. (user는 따로 생성하지 않았고 admin계정으로 테스트 할 수 있습니다.)
login 성공시 localhost:8000 으로 redirection되며 logout link를 눌러 logout할 수 있습니다
budget model view가 없습니다. url만 추가는 해놓았어요.
/api/expense, /api/diary 이런 화면에서 post? create?은 안되는게 맞나요? /api/trips에서 다 생성할 수 있나요??
budget model view 추가했습니다 제가 실수로 ListAPIView로 해놨었네요. ListCreateAPIView로 수정하였습니다
@hjbc0921
accounts/views.py 에서 indentation error나서 그 부분은 수정해서 올렸습니다
model에서는 tripID로 쓰여있고 serializer에서는 tripId로 쓰여서 error가 났습니다. serializer에 있는 tripIdfmf tripID로 replace해서 올렸습니다.
specific trip에 해당하는 각 model을 가져오는 view filter test 완료하였습니다. test한 db도 함께 올려놓았으니 git pull 받아서 아래 주소들에서 직접 확인하실 수 있습니다.
trip id 1번은 view에서 serializer save할 때 users를 request user로 default 값이 없었던 경우이고 serializer save할때 users에서 request user를 자동으로 저장하도록 한 후 test 한 경우가 trip id 2번에 해당합니다. 사진에서처럼 trip 안에 user list로 들어가며 그 안에서 user는 user serializer에 의해 user field가 모두 보이게 됩니다. 제가 실수로 db는 지워버려서 새로 superuser만 create해서 다시 올렸습니다. 저 test한 경우는 db에 포함되어 있지 않으나 새로 생성해보시면 users list에 login한 user가 들어갑니다.
@hjbc0921 TripSerializer에서 users field가 UserSerializer(read_only=True, many=True)로 되어있는데 TripDetail view에서 user를 새로 추가하는 put request를 보냈을 때 user를 추가하려면 read_only=True는 빼야하지 않을까요?? trip 생성할 때와 마찬가지로 expense나 diary 새로 생성할 때 spender나 writer도 자동으로 request user로 저장하도록 view에서 설정하였습니다. 이 두 경우에서는 spender나 writer를 수정할 일이 없으니 spender = serializers.ReadOnlyField(source='spender.id') 와 같은식으로 주어도 될 것 같습니다.
@choppaluv
@choppaluv
trip detail 화면 token authen으로 GET까지 확인하였습니다.
http GET http://127.0.0.1:8000/api/trips/5/ "Authorization: Token d741b53194..."
token 값은 다음과 같이 받을 수 있습니다.
http POST http://127.0.0.1:8000/api-token-auth/ "username"="admin" "password"="swppadmin"
detail partial update는
http PATCH http://127.0.0.1:8000/api/trips/5/ "Authorization: Token d741b531943db7d1f456af8510..." "id"=5 "title"="test111"
로 가능합니다.
expense, diary detail view에서도 spender, writer만 put, delete할 수 있도록 permission을 추가하였습니다.
iteration2가 마무리되었습니다. 이후 issue 및 discussion은 주제별로 진행될 예정입니다.
Backend