我在models文件中为class Town设置了一个ForeignKey()
。理想情况下,当我选择一个州时,所有属于这个州的城镇都会列在town中。
#models.py
class State(models.Model):
state = models.CharField(max_length=50)
code = models.CharField(max_length=3)
def __str__(self):
return self.state
class Town(models.Model):
town = models.CharField(max_length=50)
code = models.CharField(max_length=4)
state = models.ForeignKey(State, on_delete=models.CASCADE)
def __str__(self):
return self.town
现在只能用queryset中的all()
来显示所有的城镇,感觉应该用filter()
,但是找不到办法。
#forms.py
class Location(forms.Form):
state = forms.ModelChoiceField( required = True,
label = "State",
queryset = State.objects.all(),
widget = forms.Select(attrs = {
"class": "form-list-field"}
))
town = forms.ModelChoiceField( required = True,
label = "Town",
queryset = Town.objects.filter( ??? ).order_by('town'),
widget = forms.Select(attrs = {
"class": "form-list-field"}
))
2条答案
按热度按时间hyrbngr71#
你可以使用
表单.py
现在编写一个方法,以便根据选定的状态返回城镇
查看次数.py
在您的html或API代码中,当选择一个州时,发出 AJAX 请求以获取城镇列表
zfciruhq2#
我已经创建了一个小项目来实现这些事情。它被称为依赖下拉
请克隆此回购协议并运行它。
链接为here