首页 > 解决方案 > 一页上的多个表单Django

问题描述

如何每页添加多个表单?我的代码目前只显示一个表单,如何将另一个表单添加到我的代码中?

class OrderUpdateView(UpdateView):
    model = Order
    template_name = 'order_update.html'
    #in this expample only one form
    form_class = OrderEditForm


    def get_success_url(self):
        return reverse('update_order', kwargs={'pk': self.object.id})

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        instance = self.object
        qs_p = Product.objects.filter(active=True)[:12]
        products = ProductTable(qs_p)
        order_items = OrderItemTable(instance.order_items.all())
        RequestConfig(self.request).configure(products)
        RequestConfig(self.request).configure(order_items)
        context.update(locals())
        return context

标签: pythondjangoforms

解决方案


你可以试试下面的。

class OrderUpdateView(UpdateView):
    model = Order
    template_name = 'order_update.html'
    #in this expample only one form
    form_class = OrderEditForm


    def get_success_url(self):
        return reverse('update_order', kwargs={'pk': self.object.id})

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        instance = self.object
        qs_p = Product.objects.filter(active=True)[:12]
        products = ProductTable(qs_p)
        order_items = OrderItemTable(instance.order_items.all())
        RequestConfig(self.request).configure(products)
        RequestConfig(self.request).configure(order_items)
        context.update(locals())
        context['form2'] = form2_form()
        context['form3'] = form3_form()
        return context

order_update.html


<html>
some code context from mydetails class...
<form>
{% csrf_token %}
{{ form2 }}
</form>
<form>
{% csrf_token %}
{{ form3 }}
</form>
</html>

推荐阅读