2016-07-26 2 views
0

, um ein ModelForm CreateView und ein ListView auf derselben Seite anzuzeigen. im Wesentlichen möchte ich Benutzer eine Vermietung reservieren, indem Sie ihren Namen etc .. und oben auf der Seite eingeben, und am unteren Rand der Seite Informationen über die Fahrzeuge (Modell, Marke, etc)Zeigen Sie Createview (Modellformular) und Listview in der gleichen Vorlage an - Django

Ich verwende Klasse Basierte Ansichten.

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

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

Antwort

0

Sie können halten Sie Ihre Create verwenden und die Liste im Zusammenhang wie folgt hinzu:

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] 
     ) 

Dann in Ihrer Vorlage können Sie tun:

{% for order in vehicle_orders %} 
    ... 
{% endfor %} 

Alternativ Wenn Sie mehr benutzerdefinierte Logik hinzufügen, können Sie stattdessen eine Funktion für Ihre Ansicht verwenden. Klassenbasierte Ansichten sind großartig, können aber schnell sehr groß/kompliziert werden.

Verwandte Themen