在同一模板中显示createview(模型表单)和listview - Django

时间:2016-07-26 23:38:28

标签: django listview class-based-views

如何在同一页面上显示modelForm CreateView和一个listView。 基本上我希望用户通过输入他们的姓名等来保留租金。页面顶部和页面底部显示有关车辆的信息(型号,品牌等)

我正在使用基于类的视图。

class CustomerOrderCreate(CreateView):
    template_name = 'webapp/index.html'
    model = CustomerOrder
    form_class = CustomerOrderCreateForm  // This works 

    vehicleData = VehicleOrder.objects.all()  // This Does not

1 个答案:

答案 0 :(得分:0)

您可以继续使用CreateView并在上下文中添加列表,如下所示:

class CustomerOrderCreate(CreateView):
    template_name = 'webapp/index.html'
    model = CustomerOrder
    form_class = CustomerOrderCreateForm

    def get_context_data(self, **kwargs):
        return dict(
            super(CustomerOrderCreate, self).get_context_data(**kwargs),
            vehicle_orders=VehicleOrder.objects.all()[0:100]
        )

然后在您的模板中,您可以执行以下操作:

{% for order in vehicle_orders %}
    ...
{% endfor %}

或者,特别是如果您要添加更多自定义逻辑,则可以使用视图功能。基于类的视图很棒,但可以很快变得大/复杂。