2016-07-26 122 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 %} 

或者特別是如果你要添加更多的自定義邏輯,你可以使用一個函數來代替你的視圖。基於類的視圖非常棒,但可以很快變得很大/很複雜。