Я использую библиотеку Django AutoComplete Light для фильтрации значений формы на основе первичного ключа. У меня есть две модели, как показано ниже:
class Skill(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class SubSkill(models.Model):
name = models.CharField(max_length=50)
skill = models.ForeignKey(Skill, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.name.
Однако эти два поля используются в другой модели Сотрудник , поскольку я хочу выполнить запрос на основе этой модели. Я использовал Django Smart Selects , чтобы связать модели в модели Employee, которая отлично работает. Тем не менее, я пытаюсь отфильтровать свои подвиги, основываясь на навыках, используя библиотеку автозаполнения, но вместо этого получаю все подвиги. Мой Django вид автозаполнения выглядит следующим образом
class SubskillsAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
# if not self.request.user.is_authenticated():
# return Country.objects.none()
qs = SubSkill.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
, а форма моей модели выглядит следующим образом:
class EmployeeSkillForm(forms.ModelForm):
class Meta:
model = Employee
fields = ('skills','sub_skills', 'experience','resume','certificates')
widgets = {
'sub_skills': autocomplete.ModelSelect2Multiple(url='skills-autocomplete')
}
Я не могу понять, почему мои подчиненные навыки будут не фильтровать по умению вместо того, чтобы показывать все.