1
所以我有一個叫做Car
的模型,它帶有一個Manufacturer
模型的外鍵。我還有一個CarCharacterisitcs
模型,其外鍵爲Car
。如何使用Django中的外鍵獲取級聯下拉選擇框?
這是代碼的樣子:
class Car(models.Model):
idcar = models.AutoField(primary_key=True)
manufacturer = models.ForeignKey(Manufacturer, null=True, blank=True, on_delete=models.SET_NULL)
name = models.CharField(max_length=765)
class Manufacturer(models.Model):
idmanufacturer = models.AutoField(primary_key=True)
name = models.CharField(max_length=765)
class CarCharacteristics(models.Model):
idcar_characteristics = models.AutoField(primary_key=True)
car = models.ForeignKey(Car, on_delete=models.PROTECT)
我在做一個頁面,讓你添加CarCharacteristics
。
這是我的表單和視圖:
class CarCharacteristicsForm(ModelForm):
class Meta:
model = CarCharacterisitics
def add_car_characteristics(request):
if request.method == 'POST':
car_char_form = CarCharacterisiticsForm(request.POST)
if car_char.is_valid(:
car_char_form.save()
return HttpResponseRedirect('/cars/car-characterisitcs')
else:
car_char_form = CarCharacterisiticsForm()
return render(request, 'car_characteristics/add_car_characteristics.html',{'car_char_form': car_char_form,})
在我的HTML頁面,我有這樣的:
<h1>Car Characteristics</h1>
<form action="." method="POST">
{% csrf_token %}
<table id="characteristics_table">
<tr>
<td>
<table id="car_characterisitcs_table">
<td>{{ char_char_form.as_table }}</td>
</table>
</td>
</tr>
</table>
<p><input type="submit" value="Submit"></p>
</form>
當顯示這種形式,我有一個下拉選擇字段與所有我的可能的Car
模型。我想要的是有兩個選擇字段。我希望第一個讓您能夠選擇Manufacturer
,然後第二個顯示具有該製造商的所有可能的Cars
。然後,當您提交表單時,它會將您選擇的Car
分配給CarCharacterisitcs
模型的外鍵。
如果你去看看Advance Auto Parts,當你點擊「你的車」時,這就是我想要的。我怎麼做?
幾個以前的答案,可能有助於http://stackoverflow.com/questions/10214618/creating-dynamic-dropdown-options-based-off-dropdown-selection-stuck和http://stackoverflow.com/questions/ 1914358/django-chain-select and http://stackoverflow.com/questions/3233850/django-jquery-cascading-select-boxes – PhoebeB