2016-07-26 201 views
0

如何在同一页面上显示modelForm CreateView和listView。 本质上,我希望用户通过输入他们的名字等来预订租赁。页面顶部,并在页面底部显示有关车辆(型号,品牌等)的信息在同一模板中显示createview(模型表单)和listview - Django

我正在使用Class基于视图。

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

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

回答

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 %} 

或者特别是如果你要添加更多的自定义逻辑,你可以使用一个函数来代替你的视图。基于类的视图非常棒,但可以很快变得很大/很复杂。