def auto_id(): lookup_field = "postId" collection = mongodb("blog") latest_data = collection.get({},sort=[('_id',-1)]) if not latest_data: latest_data={} id_ = str(int(latest_data.get(lookup_field,0))+1) return id_
def update(request, postId): collection = mongodb(use="blog") context = { "blog_form": BlogForm(collection.get({"postId": postId})), } return render(request, 'blog/home.html', context=context)
def home(request): collection = mongodb(use="blog") post = [BlogPostSerializer(i).data for i in collection.filter({})] context = { "post": post, } return render(request, 'blog/home.html', context=context)
class BlogPostView(APIView): """ Blog Post with Auto generated <span style="color:'red'">ID</span> """ name = "Blog API" serializer_class = BlogPostSerializer collection = mongodb(use="blog") lookup_field = "postId" json_fields = BlogPost.json_field authentication_classes = [SessionAuthentication, NeoAUTH] # authentication_classes = [NeoAUTH] # permission_classes = [IsAuthenticated|ReadOnly] permission_classes = [IsAuthenticatedOrReadOnly] def get(self, request, pk=None, format=None): # try: # context = [self.serializer_class(i).data for i in self.collection.filter({})] # except: # context = [{"error":"No data Found"},{"info":"Add some data"}] context = [ self.serializer_class(i, context={ 'request': request }).data for i in self.collection.filter({}) ] return Response(context, status=status.HTTP_200_OK) def post(self, request, format=None): data = self.serializer_class(request.data).data for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.add(value=data) return Response(self.serializer_class(data, context={ 'request': request }).data, status=status.HTTP_200_OK)
class BlogIndividualPostView(APIView): """ Blog Post with Auto generated __ID__ """ name = "Blog Instance View" serializer_class = BlogPostSerializer collection = mongodb(use="blog") lookup_field = "postId" json_fields = BlogPost.json_field # authentication_classes = [SessionAuthentication, BasicAuthentication,TokenAuthentication] authentication_classes = [SessionAuthentication, NeoAUTH] permission_classes = [IsAuthenticated] def get(self, request, pk=None, **kwargs): print(request.user) context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) def put(self, request, pk=None, **kwargs): data = self.serializer_class(request.data).data # print(data) for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.set_all({self.lookup_field: pk}, data) context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) return Response(data, status=status.HTTP_200_OK) def patch(self, request, pk=None, **kwargs): data = self.serializer_class(request.data).data for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.set_all({self.lookup_field: pk}, data) context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) def delete(self, request, pk=None, **kwargs): self.collection.delete({self.lookup_field: pk}) context = {"info": f"Object with ID {pk} Deleted sucessfully"} return Response(context, status=status.HTTP_200_OK)
class BlogPostView_(viewsets.ViewSet): """ Blog Post with Auto generated __ID__ """ # action = "list" view_name = { "list": { "name": "Blog List", "description": ''' this will show all __blogs__ ''' }, "retrive": { "name": "Blog Retrive", "description": ''' this is the __retrive__ blogs page ''' }, "create": { "name": "Blog Create", "description": ''' this is the __create__ blogs page ''' }, "update": { "name": "Blog Update", "description": ''' this is the __update__ blogs page ''' }, "partial_update": { "name": "Blog Update", "description": ''' this is the __update__ blogs page ''' }, "destroy": { "name": "Blog Delete", "description": ''' this is the __destroy__ blogs page ''' }, None: { "name": "Blog Retrive", "description": ''' this is the __retrive__ blogs page ''' }, } def get_view_name(self): if not hasattr(self, 'action'): return "Blog" else: print(self.action) return self.view_name[self.action]["name"] def get_view_description(self, html=True): if self.action: description = self.view_name[self.action]["description"] return md_safe(description) return "" serializer_class = BlogPostSerializer collection = mongodb(use="blog") lookup_field = "postId" json_fields = BlogPost.json_field def list(self, request, *args, **kwargs): context = [ self.serializer_class(i, context={ 'request': request }).data for i in self.collection.filter({}) ] # except: # context = [{"error":"No data Found"},{"info":"Add some data"}] return Response(context, status=status.HTTP_200_OK) def create(self, request, *args, **kwargs): data = self.serializer_class(request.data).data # latest_data = self.collection.get({},sort=[('_id',-1)]) # if not latest_data: latest_data={} # data[self.lookup_field] = str(int(latest_data.get(self.lookup_field,0))+1) for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.add(value=data) return Response(self.serializer_class(data, context={ 'request': request }).data, status=status.HTTP_200_OK) def retrive(self, request, pk=None, **kwargs): context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) def update(self, request, pk=None): # print(request.data) data = self.serializer_class(request.data).data # print(data) for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.set_all({self.lookup_field: pk}, data) context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) def partial_update(self, request, pk=None): data = self.serializer_class(request.data).data for i in self.json_fields: data[i] = json.loads(data[i]) self.collection.set_all({self.lookup_field: pk}, data) context = self.serializer_class(self.collection.get( {self.lookup_field: pk}), context={ 'request': request }).data return Response(context, status=status.HTTP_200_OK) def destroy(self, request, pk=None): self.collection.delete({self.lookup_field: pk}) context = {"info": f"Object with ID {pk} Deleted sucessfully"} return Response(context, status=status.HTTP_200_OK)
def auto_id(): collection = mongodb(use="blog") return str(collection.filter({}).count() + 1)