2016-07-26 3 views
0

как отобразить модельForm CreateView и ListView на той же странице. По существу, я хочу, чтобы пользователи резервировали аренду, введя свое имя и т. Д., А в верхней части страницы, а внизу страницы отображают информацию об автомобилях (модель, марка и т. Д.)Показать createview (модель) и 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 %} 

В качестве альтернативы , особенно если вы собираетесь добавить дополнительную логику, вместо этого вы можете использовать функцию для своего вида. Класс, основанный на взгляде, замечательный, но может стать большим/сложным очень быстро.

Смежные вопросы