예제 #1
0
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_
예제 #2
0
파일: views.py 프로젝트: neoaman/portfolio
def update(request, postId):
    collection = mongodb(use="blog")

    context = {
        "blog_form": BlogForm(collection.get({"postId": postId})),
    }

    return render(request, 'blog/home.html', context=context)
예제 #3
0
파일: views.py 프로젝트: neoaman/portfolio
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
파일: models.py 프로젝트: neoaman/portfolio
def auto_id():
    collection = mongodb(use="blog")
    return str(collection.filter({}).count() + 1)