Django ModelFormSet exclude (or filter) existing items -


i'm not sure understand how modelformset_factory library works. want present user dynamic number of forms add new items database.

my models :

#models.py class question(models.model):     user = models.foreignkey(user)     text = models.charfield(max_length=100)  class answer(models.model):     question = models.foreignkey(question)     text = models.charfield(max_length=100) 

so user can define questions , many answers (choices) question.

so in view, want how many answers want add, , create dynamic formset, :

def q_answers(request, qid, howmanyanswersmore):     answermodelformset = modelformset_factory(answer, fields=('question','text'), = howmanymore)     formset = answermodelformset() 

the problem is, form set contains answers in database (so answer#1 of question#1, a2 of q1, a1 of q2, a2 of q2, etc.)

however, want display answers of question stated in url qid parameter. how filter answer items related questions?

also, can exclude existing items , let user add new questions?

thanks help!

either can add queryset parameter filter answer show:

def q_answers(request, qid, howmanyanswersmore):     answermodelformset = modelformset_factory(answer, fields=('question','text'), = howmanymore)     formset = answermodelformset(queryset=transaction.objects.filter(quistion=qid)) 

or can extend basemodelformset class , override queryset property:

class baseanswerformset(basemodelformset):     def __init__(self, *args, **kwargs):         super(baseanswerformset, self).__init__(*args, **kwargs)          #create filtering here whatever suits needs         self.queryset = answer.objects.filter(question=qid) def q_answers(request, qid, howmanyanswersmore):     formset = modelformset_factory(answer, formset=basetransactionformset,form=answerdateform, extra=0, can_delete=false) 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -