template - django-ajax-selecciona el uso del ejemplo
django templates examples (2)
¿Alguien puede publicar el ejemplo más simple posible para django-ajax-selects ? Solo un modelo con un campo y un formulario que se puede usar para seleccionar instancias de este modelo basadas en ese campo (no en el administrador sino en un formulario de usuario).
Intenté leer la documentación del proyecto, pero me resultó muy difícil de entender ... Además, no pude hacer que la aplicación de ejemplo funcionara (¿no podría saber qué es una etiqueta?) :(
Además, si crees que hay una solución más fácil que django-ajax-selects, dímelo.
¡Gracias!
Para comenzar, debe consultar la guía de instalación rápida .
Una etiqueta en esta documentación es un ejemplo de modelo, al igual que podría ser Car, Widget, cualquier modelo que tenga y desee.
Aquí hay un ejemplo simple (del ejemplo en github pero no probado):
models.py:
class Person(models.Model):
name = models.CharField(blank=True, max_length=100)
email = models.EmailField()
def __unicode__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=200,unique=True)
members = models.ManyToManyField(Person,blank=True,help_text="Enter text to search for and add each member of the group.")
def __unicode__(self):
return self.name
forms.py:
class GroupForm(ModelForm):
class Meta:
model = Group
members = make_ajax_field(Release,''members'',''person'')
lookups.py:
class PersonLookup(LookupChannel):
model = Person
def get_query(self,q,request):
return Person.objects.filter(name__icontains=q).order_by(''name'')
def get_result(self,obj):
return obj.name
def format_match(self,obj):
return self.format_item_display(obj)
def format_item_display(self,obj):
return u"%s" % escape(obj.name)
settings.py:
AJAX_LOOKUP_CHANNELS = {
''person'' : (''example.lookups'', ''PersonLookup''),
}
views.py:
class Create(generic.CreateView):
template_name = "create.html"
form_class = GroupForm
success_url = ''create''
create = Create.as_view()
urls.py:
urlpatterns = patterns('''',
url(r''^create'', view=''views.create'',name=''create''),
url(r''^ajax_lookup/(?P<channel>[-/w]+)$'', ''ajax_select.views.ajax_lookup'', name = ''ajax_lookup''),
)