所以这是一个场景。我允许我的用户首先使用一个表单输入他们的车辆品牌,然后使用另一个表单列出该车辆品牌可用的车型。有关车辆和品牌的信息存储在我的数据库中
请参阅此图以了解更多信息:
这是my views.py:
def driver_dashboard_trip_brand (request, brand):
if request.method == "POST":
form = AddVehicleForm(request.POST)
else:
form = AddVehicleForm()
brands = VehicleBrand.objects.all()
context = {
"form":form,
"brands":brands,
"chosen_brand":brand
}
return render (request, "app/driver_dashboard.html", context)
和我的forms.py:
class AddVehicleForm(forms.ModelForm):
model = forms.ModelChoiceField(queryset=VehicleModel.objects.all())
vehicle_colour = forms.ChoiceField(choices=COLOURS)
vehicle_number = forms.CharField(max_length=8, widget=forms.TextInput(attrs={'placeholder': 'eg: CAB-1234'}))
class Meta:
model = Vehicle
fields = ['model', 'vehicle_colour', 'vehicle_number']
因此,为了在forms.py中设置查询,我首先需要将数据从views.py发送到forms.py,然后还需要执行查询
因此,我的问题是,一旦用户选择了汽车品牌,我如何从VehicleModel
数据库中查询所有车型,并为表单创建选项属性
我的模特们
class VehicleModel (models.Model):
brand = models.ForeignKey(VehicleBrand, on_delete=models.CASCADE)
model = models.CharField(max_length=30)
def __str__ (self):
return f"{self.brand} - {self.model}"
这里有一个关于如何创建依赖字段的nice tutorial,您需要了解服务器上发生了什么,以及客户端上发生了什么
老实说没那么难,我有点明白了
这是我的表格
其中,表单
AddVehicleForm
允许我发送参数,如在my views.py中键入form = AddVehicleForm(VehicleBrand.objects.filter(brand=brand).first())
所示,但当我想要保存表单时,我需要在forms.py中创建另一个表单,而无需执行AddVehicleFormPost
中显示的任何查询然后我随便做了,
在我看来
相关问题 更多 >
编程相关推荐