Django如何在GCBV中使用url pk值(通用类库视图)

时间:2019-02-13 11:41:19

标签: python django

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

我尝试使用两个参数(请求,pk)来查看视图基础解决方案。但是如何使用gcbv post方法来完成。

Django URL模式

urls.py

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

views.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中

1 个答案:

答案 0 :(得分:1)

它在矮人之内

 pk = self.kwargs['pk']