从generic.DetailView

时间:2016-11-02 21:17:07

标签: python django generics detailview

如何将来自forms.py的上下文数据传递给使用通用detailView的views类,我需要将forms.py传递给我的产品详细信息页面。

以下是我的视图类的代码

class ProductView(generic.DetailView):
model = Product
cart_product_form = CartAddProductForm()
context = {'cart_product_form': cart_product_form}
template_name = 'shopping/product.html'
query_pk_and_slug = True

如果这不正确,请告诉我

2 个答案:

答案 0 :(得分:2)

覆盖get_context_data,并在返回之前将表单添加到上下文中。

class ProductView(generic.DetailView):
    model = Product
    template_name = 'shopping/product.html'
    query_pk_and_slug = True

    def get_context_data(self, **kwargs):
        context = super(ProductView, self).get_context_data(**kwargs)
        cart_product_form = CartAddProductForm()
        context['cart_product_form'] = cart_product_form
        return context

答案 1 :(得分:0)

class ProductView(generic.DetailView):
    model = Product
    template_name = 'shopping/product.html'
    query_pk_and_slug = True
    def get_context_data(self, **kwargs):
        context = super(ProductView, self).get_context_data(**kwargs)
        cart_product_form = CartAddProductForm()
        context['cart_product_form'] = cart_product_form
        return context