Filter objects in Django form

I use inlineformset_factory to create a set of forms as follows:

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

I have two questions

  • How can I restrict Model2 objects so that not all applicable objects are present, but only a filtered subset?
  • Does anyone have a code example for using class based views using forms?

Updated with the answer to the question about the functioning of code # 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)) 
+4
source share
1 answer

will this help? https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-queryset

basically try using queryset kwarg when creating your formset.

+6
source

Source: https://habr.com/ru/post/1369191/


All Articles