createview - Filtrar objetos en un formulario de Django
createview django (1)
ayudaría esto? https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-queryset
Básicamente, intente usar queryset kwarg cuando crea su formset.
Estoy usando inlineformset_factory para generar un formset como tal:
FormSet = inlineformset_factory(Model1, Model2, extra=0)
if request.method =="POST":
formset = FormSet(request.POST, instance=model1_object)
if formset.is_valid():
formset.save()
return HttpResponseRedirect( reverse-blah )
else:
formset = PupsFormSet(instance=model1_object,)
return render_to_response("template.html", {"formset":formset, ''model1_object'':model1_object},context_instance=RequestContext(request))
Tengo dos preguntas
- ¿Cómo puedo restringir los objetos de Model2 para que no estén presentes todos los objetos aplicables, sino solo un subconjunto filtrado?
- ¿Alguien tiene algún código de ejemplo para usar vistas basadas en clases con formsets?
Actualizado con código de funcionamiento respondiendo la pregunta n. ° 1
FormSet = inlineformset_factory(Model1, Model2, extra=0)
if request.method =="POST":
formset = FormSet(request.POST, instance=model1_object, queryset=Model2.objects.filter(foo=bar))
if formset.is_valid():
formset.save()
return HttpResponseRedirect( reverse-blah )
else:
formset = PupsFormSet(instance=model1_object, queryset=Model2.objects.filter(foo=bar))
return render_to_response("template.html", {"formset":formset, ''model1_object'':model1_object},context_instance=RequestContext(request))