我正在使用 django-select2 和表单来创建下拉列表,使用 ModelSelect2Widget。
我的问题是我过滤了“名称”字段,并且多个对象可以具有相同的“名称”但不同的“值”(请参阅下面的模型描述)。这会导致下拉菜单中多次出现相同的名称。
我想删除这些重复项。我尝试使用 .distinct('name') 来选择查询集,但它似乎不起作用。 使用 ModelSelect2Widget 获得的结果示例
以下是我使用的代码的描述:
我有两个由外键链接的模型
models.py
class Who(models.Model):
name = models.CharField(max_length=256)
value = models.CharField(max_length=256)
def __str__(self);
return str(self.name)
class Data(models.Model):
who = models.ForeignKey(Who)
我使用这里描述的表格:
forms.py
from django_select2.forms import ModelSelect2Widget
...
class CreateDataForm(ModelForm):
class Meta:
model = Data
fields = ('who',)
widgets = {'who': ModelSelect2Widget(
queryset=Who.objects.all().distinct('name'),
search_fields=['name_icontains']
)}
有谁知道我如何删除这些重复项?