私は単純な2ページのWebサイトを作っています。ユーザーは、トップページにドロップダウンボックスやHTML選択フォーム(メイク、モデル、トリム)を使用して、データベースに格納されます。検索ボタンを押すと、ユーザーはその車両に関する情報を提供するページに移動します。 Djangoのデータベースのデータにこれらのドロップダウンボックスをどのようにリンクさせるかについては、私は非常に混乱しています。Djangoのデータベースから選択フォームオプションをプル
私が持っている車のモデルは、私のcardetailsアプリのmodels.pyに存在し、これまでのところ、次のようになりますについてグーグルで
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
は、フォーム内に存在するのModelFormを、セットアップのこのように私を導きましたホームページアプリのの.py:私が持っている3つのドロップダウンボックスの
from django import forms
from cardetails.models import Car
class CarForm(ModelForm):
allCars = forms.ModelChoiceField(queryset=Car.objects.all())
、「作る」ための1がホームページのHTMLテンプレートにそうようになっています
<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>
ビューには、次のとおりです。
from django.shortcuts import render
def index(request):
return render(request, 'search/index.html')
しかし、何も「作る」ドロップダウンボックスに表示されません。私がしたいのは、ドロップダウンボックスを使ってデータベース内のすべての車のメーカー、モデル、およびトリムをすべて選択できるようにすることです。
allCarsをコンソール化していますか?クエリが正しくフェッチされていますか? –
フォームはあなたが表示したテンプレートコードとどのように関連していますか?あなたの意見を示すことができます。 – Sayse