Django-autocomplete-light ModelSelect2Multiple не отрисовывает значения
Итак, ситуация такова:
Я использую django-autocomplete-light и добился его работы на нескольких формах, однако при попытке реализовать его на поле M2M он просто не отображает значения в поле select.
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
mobile = models.CharField(max_length=11, blank=True)
customer = models.ManyToManyField("customers.Customer")
def __str__(self):
return self.user.username
class CustomerAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
if not self.request.user.is_authenticated:
return Customer.objects.none()
qs = Customer.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
class UserProfileForm(autocomplete.FutureModelForm):
class Meta:
model = UserProfile
fields =('__all__')
widgets = {
'customer': autocomplete.ModelSelect2Multiple(url='customer-autocomplete'),
}
в urls.py я получил "
".url(r'^customer-autocomplete/$', CustomerAutocomplete.as_view(),name='customer-autocomplete',),
когда я перешел к url автозаполнения: customer-autocomplete/ я получил:
{"results": [{"id": "2", "text": "Oozz", "selected_text": "Oozz"}, {"id": "1", "text": "Voolia", "selected_text": "Voolia"}, {"id": "3", "text": "Feedspan", "selected_text": "Feedspan"}, {"id": "4", "text": "Layo", "selected_text": "Layo"}, {"id": "5", "text": "Babbleblab", "selected_text": "Babbleblab"}, {"id": "6", "text": "Digitube", "selected_text": "Digitube"}, {"id": "7", "text": "Feednation", "selected_text": "Feednation"}, {"id": "8", "text": "Dabjam", "selected_text": "Dabjam"}, {"id": "9", "text": "Zoomlounge", "selected_text": "Zoomlounge"}, {"id": "10", "text": "Zoomzone", "selected_text": "Zoomzone"}], "pagination": {"more": true}}
Однако если я удалю виджет в моем form.py:
widgets = {
'customer': autocomplete.ModelSelect2Multiple(url='customer-autocomplete'),
}
Я предполагаю, что эта проблема не связана с jQuey или JS зависимыми файлами, так как я получил его работающим на другой форме, но в этой форме он просто не работает.
Что я упускаю?
Я должен быть в состоянии получить что-то вроде этого:
Ну, наконец-то я нашел решение. Я вызывал неправильный экземпляр формы в шаблоне.
Я звонил:
{{ form.media }}
Когда мне нужно было вместо этого позвонить:
{{ userprofile_form.media }}
Это происходит потому, что я отображаю различные формы в одном шаблоне.
Решено!