Отобразить createview(модель) и listview в одном шаблоне - Django
Как отобразить ModelForm CreateView и A ListView на одной странице. по сути, я хочу, чтобы пользователи бронировали аренду, указав свое имя и т. д. и в верхней части страницы, а в нижней части страницы отобразили информацию об автомобилях (модель, марка и т. д.)
Я использую представления на основе классов.
class CustomerOrderCreate(CreateView):
template_name = 'webapp/index.html'
model = CustomerOrder
form_class = CustomerOrderCreateForm // This works
vehicleData = VehicleOrder.objects.all() // This Does not
1 ответ
Вы можете продолжать использовать свой 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 %}
В качестве альтернативы, особенно если вы собираетесь добавить больше пользовательской логики, вы можете вместо этого использовать функцию для своего представления. Классно-ориентированное представление великолепно, но может очень быстро стать большим / сложным.