【发布时间】:2025-12-27 14:30:17
【问题描述】:
我有 2 个表“客户”和“位置”。
class Client(models.Model):
name = models.CharField(max_length=50)
class Location(models.Model):
name = models.CharField(max_length=50)
一个客户可以在多个位置,一个位置可以有多个客户。
我创建了第三个表来保存这种关系:
class Client_Location(models.Model):
client = models.ForeignKey(Client, on_delete=models.CASCADE)
location = models.ForeignKey(Location, on_delete=models.CASCADE)
我创建了一个表单来测试我是否可以使下拉列表动态化,所以如果我要选择一个客户,任何链接到该客户的位置都只会出现。
class ClientLocationForm(forms.ModelForm):
class Meta:
model = Client_Location
fields = '__all__'
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['location'].queryset = Location.objects.none()
到目前为止,我只能将位置字段设为空白。不知道下一步该去哪里,因为我看到的例子和我的不完全一样。
【问题讨论】:
-
一般来说,我建议使用
models.ManyToManyField,这样我们就可以轻松实现。以及其他可以通过 ajax 管理的事情 -
那么我会使用 client = models.ManyToManyField(Location) 吗?我以前没有使用过ajax,我该怎么做呢? @AnupYadav
标签: django drop-down-menu dynamic-data-list