Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.contrib.auth.models import User
- from django.utils.translation import ugettext_lazy as _
- class Profile(models.Model):
- GENDER = (
- ('male', _('MALE')),
- ('female', _('FEMALE')),
- )
- user = models.OneToOneField(User, on_delete=models.CASCADE)
- bio = models.CharField(default='', max_length=500, null=True, blank=True)
- gender = models.CharField(max_length=10, choices=GENDER, null=True, blank=True)
- city = models.CharField(default='', max_length=30, null=True, blank=True)
- country = models.CharField(default='', max_length=30, null=True, blank=True)
- class UserSerializer(serializers.HyperlinkedModelSerializer):
- class Meta:
- model = User
- fields = ('url', 'username', 'password', 'email', 'groups')
- password = serializers.CharField(write_only=True)
- class UserViewSet(viewsets.ModelViewSet):
- @list_route(methods=['get', 'post'], permission_classes=[permissions.IsAuthenticated])
- def profile(self, request):
- u = User.objects.filter(pk=request.user.pk)[0]
- p = Profile.objects.filter(user=u)[0]
- return Response({"id": u.id, "first_name": u.first_name, "last_name": u.last_name, "email": u.email,
- "city": p.city, "country": p.country, "bio": p.bio})
- permission_classes = [permissions.IsAuthenticated]
- queryset = User.objects.all()
- serializer_class = UserSerializer
- router = routers.DefaultRouter()
- router.register(r'users', UserViewSet)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement