预期的视图ShowImageList将使用名为“ pk”的URL关键字参数进行调用

时间:2019-12-12 12:07:00

标签: python django

访问网址/ show_image /,/ products /,/ categories /时出现以下问题。但是show_image /(?P [\ w-] +)/ $ url工作正常

Expected view ShowImageList to be called with a URL keyword argument named "pk". Fix your URL conf, or set the `.lookup_field` attribute on the view correctly.

我的urls.py是

url(r'^products',ProductList.as_view({'get': 'retrieve'}), name="product-list"),
url(r'^show_image/$', ShowImageList.as_view({'get': 'retrieve'}), name='ShowImage'),
url(r'^show_image/(?P<pk>[\w-]+)/$', ShowImageDetail.as_view({'get': 'retrieve'}), name='image_detail'),
url(r'^categories/', Categories.as_view({'get': 'retrieve'}), name= 'categories'),

我的views.py是

class ShowImageList(ResponseModelViewSet):
    queryset = ProductImage.objects.all()
    serializer_class = ShowImageSerializer

    def post(self, request, *args, **kwargs):
        file = request.data['original']
        product = request.data['product']
        caption = request.data['caption']
        display_order = request.data['display_order']
        p = Product.objects.get(pk=product)
        ProductImage.objects.create(product=p, original=file, caption=caption, display_order=display_order)
        return Response(json.dumps({'message': "Uploaded"}))

class ShowImageDetail(ResponseModelViewSet):
    queryset = ProductImage.objects.all()
    serializer_class = ShowImageSerializer


class ProductList(ResponseModelViewSet):
    serializer_class = ProductLinkSerializer
    model=Product
    def get_queryset(self):
        return Product.objects.all()

除/ show_image /(?P [\ w-] +)/ $

之外,每个网址都面临相同的错误

0 个答案:

没有答案