Ich mache eine einfache 2-seitige Website, die den Benutzer Dropdown-Boxen oder HTML-Select-Formulare (Marke, Modell, Trimmen) auf der Titelseite verwenden können, um Informationen über eine Auto, das in einer Datenbank gespeichert wird. Nach dem Drücken einer Suchtaste wird der Benutzer auf die Seite weitergeleitet, die Informationen über das Fahrzeug bereitstellt. Ich bin sehr verwirrt darüber, wie ich diese Dropdown-Boxen mit Daten aus der Datenbank in Django verlinke.Ziehen Sie ausgewählte Formularoptionen aus der Datenbank in Django
Das Auto-Modell Ich habe liegt in der models.py meiner cardetails App und sieht wie folgt aus bisher:
class Car(models.Model):
make = models.CharField(max_length=50)
model = models.CharField(max_length=50)
trim = models.CharField(max_length=50)
# other info here.
# Return the actual name of the car instead of "model-object"
def __str__(self):
return self.make + " " + self.model + " " + self.trim
Googeln über mich in Formen auf diese Art und Weise führte eine Modelform, bis der Einstellung, die wohnt Py der Homepage App:
from django import forms
from cardetails.models import Car
class CarForm(ModelForm):
allCars = forms.ModelChoiceField(queryset=Car.objects.all())
von der 3 Drop-Down-Box ich habe, die man für "make" sieht aus wie so in der hTML-Vorlage von der Homepage:
<span style="display:inline-block">
<select class="form-control" id="make">
{% for car in allCars %}
<option>{{ car.make }}</option>
{% endfor %}
</select>
<label for="make" style="display:block">Make</label>
</span>
Die Ansicht, für die ist:
from django.shortcuts import render
def index(request):
return render(request, 'search/index.html')
scheint jedoch nichts in der Dropdown-Box "machen". Was ich tun möchte, ist, dass alle Marken, Modelle und Trimmungen aller Autos in der Datenbank über die Dropdown-Boxen auswählbar sind.
trösten Sie allCars? Abfrage wird korrekt abgerufen? –
Wie bezieht sich Ihr Formular auf den Vorlagencode, den Sie angezeigt haben? Vielleicht möchten Sie Ihre Ansicht zeigen. – Sayse