Advertisement
Guest User

Untitled

a guest
Apr 8th, 2016
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from django.utils.translation import ugettext_lazy as _
  4.  
  5.  
  6. class Profile(models.Model):
  7. GENDER = (
  8. ('male', _('MALE')),
  9. ('female', _('FEMALE')),
  10. )
  11. user = models.OneToOneField(User, on_delete=models.CASCADE)
  12. bio = models.CharField(default='', max_length=500, null=True, blank=True)
  13. gender = models.CharField(max_length=10, choices=GENDER, null=True, blank=True)
  14. city = models.CharField(default='', max_length=30, null=True, blank=True)
  15. country = models.CharField(default='', max_length=30, null=True, blank=True)
  16.  
  17. class UserSerializer(serializers.HyperlinkedModelSerializer):
  18. class Meta:
  19. model = User
  20. fields = ('url', 'username', 'password', 'email', 'groups')
  21.  
  22. password = serializers.CharField(write_only=True)
  23.  
  24.  
  25. class UserViewSet(viewsets.ModelViewSet):
  26. @list_route(methods=['get', 'post'], permission_classes=[permissions.IsAuthenticated])
  27. def profile(self, request):
  28. u = User.objects.filter(pk=request.user.pk)[0]
  29. p = Profile.objects.filter(user=u)[0]
  30. return Response({"id": u.id, "first_name": u.first_name, "last_name": u.last_name, "email": u.email,
  31. "city": p.city, "country": p.country, "bio": p.bio})
  32.  
  33. permission_classes = [permissions.IsAuthenticated]
  34. queryset = User.objects.all()
  35. serializer_class = UserSerializer
  36.  
  37.  
  38. router = routers.DefaultRouter()
  39. router.register(r'users', UserViewSet)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement