小编JDW*_*dle的帖子

可以在从URL调用的APIView上有一个方法

在Django的REST框架是它有可能在一个自定义的方法APIView类调用方式类似,.get().post()将被调用.

我知道路由器使用@action()@link()装饰器是可能的,我试图弄清楚你是否可以做类似的东西APIView但是有它所以我可以将方法设置为我想要的任何网址.

我尝试过用这个课来装饰@action(),@api_view()但似乎没有任何效果.

我不确定我应该在url中放置一个端点来实际调用类中的方法.我会用CartAPIView.clear.as_view(),CartAPIView.clearCartAPIView.clear().我尝试了不同的调用组合,CartAPIView但没有任何效果.

这是我正在尝试做的一个例子:

# views.py
class CartAPIView(APIView):
    @api_view(['POST'])
    def clear(self, request):
        """Clear the users cart."""
        queryset = Cart.objects.get(user=request.user)

        queryset.clear_cart()

        serializer = CartSerializer(queryset)

        return Response(serializer.data, status=status.HTTP_200_OK)

# urls.py
urlpatterns = patterns('app.views',
    ....
    url(r'^cart/clear/$', CartAPIView.clear.as_view(), name='clear_cart_api'),
    ....
)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

python api django django-rest-framework

8
推荐指数
3
解决办法
2万
查看次数

Go程序挂在Windows 10上

我一直遇到挂在Windows上的所有Go程序的问题,甚至是一个简单的Hello world程序.我已经多次重新安装Golang而没有任何改变.我无法使用Ctrl + X或Ctrl + D来关闭程序.它仍会产生将显示在Process Monitor上的进程.但我不能从那里或从命令行杀死它.

在reddit上发布了类似的问题https://www.reddit.com/r/golang/comments/2lvnqk/not_even_hello_world_works/.但那仍然没有解决方案.

这是我正试图立即运行的程序:

package main

import "fmt"

func main() {
    fmt.Println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)

运行它go run -x给出了这个输出:

WORK=C:\Users\User\AppData\Local\Temp\go-build882050150
mkdir -p $WORK\command-line-arguments\_obj\
mkdir -p $WORK\command-line-arguments\_obj\exe\
cd E:\go\src\github.com\test\hello
"C:\\Go\\pkg\\tool\\windows_amd64\\compile.exe" -o "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150\\command-line-arguments.a" -trimpath "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150" -p main -complete -buildid 0180ed6e175ea3e4bc497fc21fe0319a733a9c8e -D _/E_/go/src/github.com/test/hello -I "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150" -pack "E:\\go\\src\\github.com\\test\\hello\\main.go"
cd .
"C:\\Go\\pkg\\tool\\windows_amd64\\link.exe" -o "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150\\command-line-arguments\\_obj\\exe\\main.exe" -L "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150" -w -extld=gcc -buildmode=exe -buildid=0180ed6e175ea3e4bc497fc21fe0319a733a9c8e "C:\\Users\\User\\AppData\\Local\\Temp\\go-build882050150\\command-line-arguments.a"
$WORK\command-line-arguments\_obj\exe\main.exe
Run Code Online (Sandbox Code Playgroud)

之后,它只是坐在那里,没有任何剂量.无论我运行什么程序都会永远挂起.

不知道从哪里开始.我真的没有在Windows上开发,但我试图在Ubuntu上进行交叉编译,并且遇到了交叉编译的二进制文件,我以为我会尝试直接在Windows上编译.但似乎我的Windows不喜欢Golang编译的二进制文件.

Go版本是1.5.1 windows/amd64.

这是输出go env:

set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64 …
Run Code Online (Sandbox Code Playgroud)

go windows-10

4
推荐指数
1
解决办法
1517
查看次数

标签 统计

api ×1

django ×1

django-rest-framework ×1

go ×1

python ×1

windows-10 ×1