I trying to set up the django auto complete light outside the admin views. I am follow this tutorial but I havent got any luck in figure out whats is wrong:
Models.py
class TvShowModel(models.Model):
tvs_id = models.IntegerField(primary_key=True)
tvs_name = models.CharField(max_length=100)
tvs_name_br = models.CharField(max_length=100, blank=True,default="")
tvs_genre = models.CharField(max_length=100, blank=True,default="", null=True)
tvs_language = models.CharField(max_length=100, blank=True,default="", null=True)
tvs_status = models.CharField(max_length=100, null=True)
tvs_runtime = models.FloatField(blank=True,default="", null=True)
tvs_schedule = models.CharField(max_length=100, blank=True,default="", null=True)
tvs_rating = models.CharField(max_length=100, blank=True,default="", null=True)
tvs_timezone = models.CharField(max_length=100, blank=True,default="", null=True)
tvs_imdb_id = models.CharField(max_length=100, null=True, blank=True,default="")
tvs_img_m_url = models.CharField(max_length=100, null=True, blank=True,default="")
tvs_summary = models.TextField(max_length=100, null=True, blank=True,default="")
tvs_summary_br = models.TextField(max_length=100, null=True, blank=True,default="")
tvs_likes = models.FloatField()
def __str__(self):
return self.tvs_name
views.py
class TvAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
#if not self.request.user.is_authenticated():
# return Doctor.objects.none()
qs = TvShowModel.objects.all()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs
class TvShowForm(autocomplete.FutureModelForm):
class Meta:
model = TvShowModel
fields = ('tvs_name',)
widgets = {
'TvShowModel': autocomplete.ModelSelect2(url='select2_outside_admin')
}
class sss(UpdateView):
model = TvShowModel
form_class = TvShowForm
template_name = 'webapp/select2_outside_admin.html'
success_url = reverse_lazy('select2_outside_admin')
def get_object(self):
return TvShowModel.objects.first()
Forms.py
class TvShowForm(autocomplete.FutureModelForm):
class Meta:
model = TvShowModel
fields = ('tvs_name',)
widgets = { 'tvshow': autocomplete.ModelSelect2(url='select2_outside_admin', attrs={ 'data-html' : 'true' })}
#Tried this way also:
#widgets = {
#'TvShowModel': autocomplete.ModelSelect2(url='select2_outside_admin')
#}
urls.py
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^showlist', views.showlist, name='showlist'),
url(r'^search', views.search, name='search'),
url(r'^sss',views.TvAutocomplete.as_view(),name='select2_outside_admin'),
]
select_outside_admin.html
{#% extends 'base.html' %#}
{# Don't forget that one ! #}
{% load static %}
<script src="{% static 'assets/css/select2.css' %}"></script>
{% block content %}
<div>
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" />
</form>
</div>
{% endblock %}
{% block footer %}
<script src="{% static 'assets/js/select2.min.js' %}"></script>
<script src="{% static 'assets/js/select2.js' %}"></script>
<script src="{% static 'assets/js/search.js' %}"></script>
<script src="{% static 'sep/jquery-1.7.2.js' %}"></script>
<script src="{% static 'sep/autocomplete.init.js' %}"></script>
<script src="{% static 'sep/forward.js' %}"></script>
{{ form.media }}
{% endblock %}
If I set url ^sss to views.TvAutocomplete.as_view() the response is:
{"results": [{"id": 1, "text": "under the dome"}, {"id": 2, "text": "Person of Interest"}, {"id": 3, "text": "Bitten"}, {"id": 4, "text": "Arrow"}, {"id": 5, "text": "True Detective"}, {"id": 6, "text": "The 100"}, {"id": 7, "text": "Homeland"}, {"id": 8, "text": "Glee"}, {"id": 9, "text": "Revenge"}, {"id": 10, "text": "Grimm"}], "pagination": {"more": true}}
If I set url ^sss to views.sss.as_view() the response is(but the field do not work):