3

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:

https://django-autocomplete-light.readthedocs.io/en/master/tutorial.html#using-autocompletes-outside-the-admin

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):

Field without auto complete See in the attachments.

0 Answers0