def put(self, request, pk, format=None): user = self.get_user(pk) serializer = UserProfileSerializer(user.profile, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class OrderSerializer(ModelSerializer): items = ItemOrderSerializer(many=True, read_only=True) userprofile = UserProfileSerializer(many=False, read_only=True) class Meta: model = Order fields = '__all__'
def user_detail_view(request, *args, **kwargs): username = request.GET.get('username') if not username: return Response({'msg': 'User does not exist'}, status=404) qs = UserProfile.objects.filter(user__username__iexact=username).first() if not qs: return Response({'msg': 'User does not exist'}, status=404) serializer = UserProfileSerializer(qs) return Response(serializer.data, status=200)
def put(self, request, format=None): user = request.user profile = user.profile serializer = UserProfileSerializer(profile, data=request.DATA, files=request.FILES) if serializer.is_valid(): serializer.save() return response.Response(serializer.data) return response.Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class BlogListSerializer(serializers.HyperlinkedModelSerializer): #url = serializers.HyperlinkedIdentityField(view_name="blog-list", # lookup_field = "slug") series = BlogSeriesSerializer(required=False) author = UserProfileSerializer() tags = BlogTagFieldSerializer(many=True) class Meta: model = Blog fields = ('folder', 'slug', 'series', 'author', 'title', 'pub_date', 'tags', 'description', 'welcome_image', 'publishable', 'pos_responses', 'neg_responses')
class BlogSeriesSerializer(serializers.HyperlinkedModelSerializer): creator = UserProfileSerializer() #tags = TagFieldSerializer() genre = SeriesTagFieldSerializer(many=True) #blog_set = serializers.HyperlinkedIdentityField(view_name="blog-detail", lookup_field='slug') class Meta: model = Series fields = ('url', 'title', 'genre', 'creator', 'create_date', 'slug', 'image', 'blog_set', 'description') lookup_field = 'slug' extra_kwargs = {'url': {'lookup_field': 'slug'}}
class BlogSerializer(serializers.HyperlinkedModelSerializer): series = BlogSeriesSerializer(required=False) author = UserProfileSerializer() tags = BlogTagFieldSerializer(many=True) class Meta: model = Blog fields = ('url', 'folder', 'slug', 'series', 'author', 'title', 'pub_date', 'tags', 'description', 'content', 'hidden_message', 'welcome_image', 'publishable', 'pos_responses', 'neg_responses') lookup_field = 'slug' extra_kwargs = {'url': {'lookup_field': 'slug'}}
def get(self, request): # Get User from Token user = request.user try: # Try to get User Profile profile = UserProfile.objects.get(user=user) # Serialize Data profile_serializer = UserProfileSerializer(profile) # Return Response return Response(profile_serializer.data, status=status.HTTP_200_OK) except UserProfile.DoesNotExist: raise NotFound(detail="User Profile doesn't exist")
def user_login(request): username = request.POST.get('username', None) password = request.POST.get('password', None) user = authenticate(username=username, password=password) if user: token = Token.objects.update_or_create(user=user) token = Token.objects.get(user=user) profile = UserProfile.objects.filter(user=user).first() return Response( { 'token': token.key, 'user': UserProfileSerializer(profile).data }, status=200) return Response({'msg': 'login failed'}, status=401)
class AllTreeSerializer(serializers.ModelSerializer): owner = UserProfileSerializer() class Meta: model = Tree fields = [ "id", "name", "nickname", "details", "image", "family", "lat", "lng", "owner", "created_at", "broken", "approved", ]
def user_detail_uid_view(request, uid, *args, **kwargs): qs = UserProfile.objects.filter(user__id=uid) if not qs.exists(): return Response({'msg': 'user does not exists'}, status=404) serializer = UserProfileSerializer(qs.first()) return Response(serializer.data, status=200)
def get(self, request, format=None): user = request.user profile = user.profile serializer = UserProfileSerializer(profile) return response.Response(serializer.data)
def profile(self, request, username): profile = UserProfile.objects.prefetch_related('user', 'user__blog_set', 'user__blog_set__section').get(user__username=username) serializer = UserProfileSerializer(profile) return Response(serializer.data)