示例#1
0
文件: views.py 项目: Nacto1/weblate
    def translations(self, request, **kwargs):
        obj = self.get_object()

        if request.method == "POST":
            if not request.user.has_perm("translation.add", obj):
                self.permission_denied(request,
                                       message="Can not create translation")

            if "language_code" not in request.data:
                raise ParseError("Missing 'language_code' parameter")

            language_code = request.data["language_code"]

            try:
                language = Language.objects.get(code=language_code)
            except Language.DoesNotExist:
                raise Http404("No language code '%s' found!" % language_code)

            translation = obj.add_new_language(language, request)
            serializer = TranslationSerializer(translation,
                                               context={"request": request},
                                               remove_fields=("component", ))

            return Response(data={"data": serializer.data},
                            status=status.HTTP_201_CREATED)

        queryset = obj.translation_set.all().order_by("id")
        page = self.paginate_queryset(queryset)

        serializer = TranslationSerializer(page,
                                           many=True,
                                           context={"request": request},
                                           remove_fields=("component", ))

        return self.get_paginated_response(serializer.data)
示例#2
0
    def translations(self, request, **kwargs):
        obj = self.get_object()

        queryset = obj.translation_set.all().order_by('id')
        page = self.paginate_queryset(queryset)

        serializer = TranslationSerializer(page,
                                           many=True,
                                           context={'request': request},
                                           remove_fields=('component', ))

        return self.get_paginated_response(serializer.data)
示例#3
0
    def translations(self, request, **kwargs):
        obj = self.get_object()

        if request.method == 'POST':
            if not request.user.has_perm('translation.add', obj):
                self.permission_denied(request,
                                       message='Can not create translation')

            if 'language_code' not in request.data:
                raise ParseError("Missing 'language_code' parameter")

            language_code = request.data['language_code']

            try:
                language = Language.objects.get(code=language_code)
            except Language.DoesNotExist:
                raise Http404("No language code '%s' found!" % language_code)

            obj.add_new_language(language, request)
            page = obj.translation_set.get(language=language)
            serializer = TranslationSerializer(
                page,
                context={'request': request},
                remove_fields=('component', ),
            )

            return Response(data={
                'data': serializer.data,
            },
                            status=status.HTTP_201_CREATED)

        queryset = obj.translation_set.all().order_by('id')
        page = self.paginate_queryset(queryset)

        serializer = TranslationSerializer(page,
                                           many=True,
                                           context={'request': request},
                                           remove_fields=('component', ))

        return self.get_paginated_response(serializer.data)