2016-07-26 10 views
0

ModelForm CreateViewとlistViewを同じページに表示する方法。 基本的に私はユーザーに名前などを入力してレンタルを予約し、ページの上部にはページの下部に車の情報(モデル、メイクなど)を表示します。同じテンプレートにcreateview(model form)とlistviewを表示する - Django

私はクラスを使用していますベースビュー。

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

を特に、カスタムロジックを追加する場合は、ビューの代わりに関数を使用することができます。クラスベースのビューは素晴らしいですが、実際には大きく複雑になる可能性があります。

関連する問題