Source code for autocomplete_light.views

from django import http
from django.views import generic

import autocomplete_light

__all__ = ['ChannelView']


[docs]class ChannelView(generic.View): """Simple view that routes the request to the appropriate channel."""
[docs] def get(self, request, *args, **kwargs): """ Return an HttpResponse with the return value of channel.render_autocomplete(). This view is called by the autocomplete script, it is expected to return the rendered autocomplete box contents. To do so, it gets the channel class from the registry, given the url keyword argument channel, that should be the channel name. Then, it instanciates the channel with no argument as usual, and calls channel.init_for_request, passing all arguments it recieved. Finnaly, it makes an HttpResponse with the result of channel.render_autocomplete(). The javascript will use that to fill the autocomplete suggestion box. """ channel_class = autocomplete_light.registry[kwargs['channel']] channel = channel_class() channel.init_for_request(request, *args, **kwargs) return http.HttpResponse(channel.render_autocomplete())
[docs] def post(self, request, *args, **kwargs): """ Just proxy channel.post(). This is the key to communication between the channel and the widget in javascript. You can use it to create results and such. """ channel_class = autocomplete_light.registry[kwargs['channel']] channel = channel_class() return channel.post(request, *args, **kwargs)

Project Versions