Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
K
KawowyDzienniczek
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Rafal
KawowyDzienniczek
Commits
197ce618
Commit
197ce618
authored
Jul 06, 2016
by
Rafal
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add user_profile and endpoint /me
parent
15ef41dc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
2 deletions
+67
-2
init.py
KawowyDzienniczek/App/user/management/commands/init.py
+1
-0
init_userprofile.py
...enniczek/App/user/management/commands/init_userprofile.py
+25
-0
models.py
KawowyDzienniczek/App/user/models.py
+2
-0
serializers.py
KawowyDzienniczek/App/user/serializers.py
+11
-1
views.py
KawowyDzienniczek/App/user/views.py
+27
-1
urls.py
KawowyDzienniczek/KawowyDzienniczek/urls.py
+1
-0
No files found.
KawowyDzienniczek/App/user/management/commands/init.py
View file @
197ce618
...
@@ -8,6 +8,7 @@ class Command(BaseCommand):
...
@@ -8,6 +8,7 @@ class Command(BaseCommand):
def
handle
(
self
,
*
args
,
**
options
):
def
handle
(
self
,
*
args
,
**
options
):
call_command
(
'init_users'
)
call_command
(
'init_users'
)
call_command
(
'init_userprofile'
)
call_command
(
'init_products'
)
call_command
(
'init_products'
)
call_command
(
'init_offers'
)
call_command
(
'init_offers'
)
call_command
(
'init_promotions'
)
call_command
(
'init_promotions'
)
...
...
KawowyDzienniczek/App/user/management/commands/init_userprofile.py
0 → 100644
View file @
197ce618
from
django.contrib.auth.models
import
User
from
App.user.models
import
UserProfile
__author__
=
'Rafal'
from
django.core.management.base
import
BaseCommand
class
Command
(
BaseCommand
):
def
handle
(
self
,
*
args
,
**
options
):
data
=
[
[
'admin'
,
'/static/media/img/users/photos/default_avatar.png'
,],
[
'Antek'
,
'/static/media/img/users/photos/antek.jpg'
,],
[
'Rafal'
,
'/static/media/img/users/photos/rafal.jpg'
],
[
'Klaudia'
,
'/static/media/img/users/photos/klaudia.jpg'
],
]
print
(
"Creating UsersProfile"
)
for
user_data
in
data
:
print
(
"{0} take {1} API"
.
format
(
user_data
[
0
],
user_data
[
1
]))
user
=
User
.
objects
.
filter
(
username
=
user_data
[
0
])[
0
]
new_userapi
=
UserProfile
.
objects
.
create
(
user
=
user
,
photo
=
user_data
[
1
])
new_userapi
.
save
()
KawowyDzienniczek/App/user/models.py
View file @
197ce618
...
@@ -14,3 +14,5 @@ def create_auth_token(sender, instance=None, created=False, **kwargs):
...
@@ -14,3 +14,5 @@ def create_auth_token(sender, instance=None, created=False, **kwargs):
class
UserProfile
(
models
.
Model
):
class
UserProfile
(
models
.
Model
):
user
=
models
.
ForeignKey
(
User
,
related_name
=
'user_profile'
,
user
=
models
.
ForeignKey
(
User
,
related_name
=
'user_profile'
,
blank
=
False
,
null
=
False
,
default
=
None
)
blank
=
False
,
null
=
False
,
default
=
None
)
photo
=
models
.
ImageField
()
KawowyDzienniczek/App/user/serializers.py
View file @
197ce618
...
@@ -4,10 +4,20 @@ from django.shortcuts import get_object_or_404
...
@@ -4,10 +4,20 @@ from django.shortcuts import get_object_or_404
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
App.user.models
import
UserProfile
class
UserSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
UserSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
class
Meta
:
model
=
User
model
=
User
fields
=
(
'url'
,
'id'
,
'username'
,
'email'
)
fields
=
(
'url'
,
'id'
,
'username'
,
'email'
,)
class
UserProfileSerializer
(
serializers
.
HyperlinkedModelSerializer
):
user
=
UserSerializer
()
class
Meta
:
model
=
UserProfile
fields
=
(
'url'
,
'id'
,
'user'
,
'photo'
)
class
AuthTokenSerializerByEmail
(
serializers
.
Serializer
):
class
AuthTokenSerializerByEmail
(
serializers
.
Serializer
):
...
...
KawowyDzienniczek/App/user/views.py
View file @
197ce618
...
@@ -13,7 +13,8 @@ from rest_framework.response import Response
...
@@ -13,7 +13,8 @@ from rest_framework.response import Response
from
rest_framework
import
viewsets
,
permissions
from
rest_framework
import
viewsets
,
permissions
from
rest_framework.views
import
APIView
from
rest_framework.views
import
APIView
from
App.user.serializers
import
UserSerializer
,
AuthTokenSerializerByEmail
from
App.user.models
import
UserProfile
from
App.user.serializers
import
UserSerializer
,
AuthTokenSerializerByEmail
,
UserProfileSerializer
from
rest_framework
import
parsers
,
renderers
from
rest_framework
import
parsers
,
renderers
class
UserViewSet
(
viewsets
.
ModelViewSet
):
class
UserViewSet
(
viewsets
.
ModelViewSet
):
...
@@ -31,6 +32,31 @@ class UserViewSet(viewsets.ModelViewSet):
...
@@ -31,6 +32,31 @@ class UserViewSet(viewsets.ModelViewSet):
return
Response
(
status
=
rest_framework
.
status
.
HTTP_200_OK
,
data
=
user_data
)
return
Response
(
status
=
rest_framework
.
status
.
HTTP_200_OK
,
data
=
user_data
)
class
UserProfileViewSet
(
viewsets
.
ModelViewSet
):
"""
API for articles
"""
queryset
=
UserProfile
.
objects
.
all
()
serializer_class
=
UserProfileSerializer
permission_classes
=
(
permissions
.
IsAuthenticatedOrReadOnly
,)
def
perform_create
(
self
,
serializer
):
serializer
.
save
(
user
=
self
.
request
.
user
)
def
list
(
self
,
request
):
user
=
request
.
user
queryset
=
UserProfile
.
objects
.
exclude
(
user
=
user
)
page
=
self
.
paginate_queryset
(
queryset
)
serializer
=
UserProfileSerializer
(
page
,
many
=
True
,
context
=
{
'request'
:
request
})
return
self
.
get_paginated_response
(
serializer
.
data
)
@
list_route
(
methods
=
[
'get'
])
def
me
(
self
,
request
,
pk
=
None
):
user
=
request
.
user
user_profile
=
UserProfile
.
objects
.
filter
(
user
=
user
)[
0
]
user_profile_data
=
UserProfileSerializer
(
user_profile
,
context
=
{
'request'
:
request
})
.
data
return
Response
(
status
=
rest_framework
.
status
.
HTTP_200_OK
,
data
=
user_profile_data
)
class
ObtainAuthToken
(
APIView
):
class
ObtainAuthToken
(
APIView
):
throttle_classes
=
()
throttle_classes
=
()
permission_classes
=
()
permission_classes
=
()
...
...
KawowyDzienniczek/KawowyDzienniczek/urls.py
View file @
197ce618
...
@@ -25,6 +25,7 @@ from App.loyaltyMe import views as loyalty_views
...
@@ -25,6 +25,7 @@ from App.loyaltyMe import views as loyalty_views
router
=
routers
.
DefaultRouter
()
router
=
routers
.
DefaultRouter
()
router
.
register
(
r'user'
,
user_views
.
UserViewSet
)
router
.
register
(
r'user'
,
user_views
.
UserViewSet
)
router
.
register
(
r'user_profile'
,
user_views
.
UserProfileViewSet
)
router
.
register
(
r'products'
,
loyalty_views
.
ProductViewSet
)
router
.
register
(
r'products'
,
loyalty_views
.
ProductViewSet
)
router
.
register
(
r'offerts'
,
loyalty_views
.
OfferViewSet
)
router
.
register
(
r'offerts'
,
loyalty_views
.
OfferViewSet
)
router
.
register
(
r'promotions'
,
loyalty_views
.
PromotionViewSet
)
router
.
register
(
r'promotions'
,
loyalty_views
.
PromotionViewSet
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment