首页 > 解决方案 > Django 如何在 GCBV 中使用 url pk 值(通用类库视图)

问题描述

我正在设计通用类基视图,我想在其中使用 URL 模式中的 pk (主键)值我该怎么做?

我已经尝试使用两个参数(请求,pk)查看基本解决方案。但是如何使用gcbvpost 方法完成。

Django URL 模式

网址.py

url(r'^(?P<pk>[0-9]+)/add_product/$', views.AddProduct.as_view(), name='add_product')

视图.py

class AddProduct (LoginRequiredMixin, CreateView):
    login_url = '/login_user'
    redirect_field_name = 'redirect_to'
    model = Product
    template_name = 'shopsurfer/add_product.html'
    fields = ['name', 'category', 'lot', 'specs', 'price', 'product_logo']

    def form_valid(self, form):
        object = form.save(commit=False)
        pk = ***here want pk from url***
        object.shop = get_object_or_404(Shop, pk=pk)
        object.save()
        return super(AddProduct, self).form_valid(form)

我想将 pk 值存储在 AddProduct 中声明的变量 PK 中

标签: pythondjango

解决方案


它在 kwargs 里面

 pk = self.kwargs['pk']

推荐阅读