Multiple forms on one page - one not working: Django -


i trying have 2 forms on (paginated) page.
display fine if hit "save" on relevance_form, can see change in admin. event_form, however, nothing happens , after days of trying figure out , not finding answer, i'm posting here:
why eventrecordform not being submitted?

here form classes:

class eventrecordform(modelform): """docstring eventrecordform""" def __init__(self, *args, **kwargs):         super(eventrecordform, self).__init__(*args, **kwargs)         self.fields['event_date'].required = true         self.fields['location'].required = true         self.fields['anti_gov'].required = true  class meta:     model = eventrecord     exclude = ('article', 'coder', 'last_updated','country',)  def __unicode__(self):     return u'eventrecordform'  class relevancecodingrecordform(modelform):     """(articlemetainforecordform description)"""     class meta:         model = relevancecodingrecord         exclude = ('article', 'coder', 'coding_date','last_updated',         'screened', 'classified',)      def __unicode__(self):         return u"relevancecodingrecordform" 

my view:

def assignment(request, pk):     """view each assignment"""     if request.user.is_authenticated():          #### correct articles         assignment = get_object_or_404(assignment, pk=pk)         country = assignment.country.ccode         start_date = assignment.start_date         end_date = assignment.end_date         articles = article.objects.filter(country=country).filter(pub_date__range=(start_date,end_date))         paginator = paginator(articles, 1)          #### pagination ####         page = request.get.get('page')         try:             articles = paginator.page(page)         except pagenotaninteger:             articles = paginator.page(1)         except emptrypage:             articles = paginator(page(paginator.num_pages))          #### forms ####         if request.method == 'post':             if 'event' in request.post:                 event_form = eventrecordform(request.post, prefix='event')                 if event_form.is_valid():                     obj = event_form.save(commit=false)                     obj.article = paginator.page(page).object_list[0]                     # obj.classified = true need figure out                     obj.coder = request.user.coder                     obj.country = paginator.page(page).object_list[0].country                     obj.save()                     redirect_to = "?page=%s" % page                    # return httpresponseredirect(redirect_to)                     return httpresponseredirect(reverse ('coding:assignment', args=(pk,)))                 relevance_form = relevancecodingrecordform(prefix='relevance')             elif 'relevance' in request.post:                 relevance_form = relevancecodingrecordform(request.post, prefix='relevance')                 if relevance_form.is_valid():                     obj = relevance_form.save(commit=false)                     obj.article = paginator.page(page).object_list[0]                     obj.screened = true                     obj.coder = request.user.coder                     obj.save()                     redirect_to = "?page=%s" % page                     #return httpresponseredirect(redirect_to)                     return httpresponseredirect(reverse ('coding:assignment', args=(pk,)))                 event_form = eventrecordform(prefix='event')         else:             event_form = eventrecordform(prefix='event')             relevance_form = relevancecodingrecordform(prefix='relevance')      else:         print error     return render(request, 'coding/assignment.html',      {'articles':articles,'assignment':assignment,'event_form':event_form,'relevance_form':relevance_form}) 

and template:

<div id="coding">  <div id="relevance">  {% if assignment.screening == true %}  <form action="" method="post" accept-charset="utf-8" id="form">     {% csrf_token %}     {{ relevance_form.as_p }} <p><input type="submit" name="relevance" value="save &rarr;"></p> </form>  {% endif %} </div>  <div id="classifying"> {% if assignment.classifying == true %}  <form action="" method="post" accept-charset="utf-8" id="form">     {% csrf_token %}     {{ event_form.as_p}} <p><input type="submit" name="event" value="save &rarr;"></p> </form>  {% endif %} </div> <div id="pagination">     <span class="step-links">         {% if articles.has_previous %}         <a href="?page={{ articles.previous_page_number }}">previous</a>         {% endif %}          <span class="current">             article {{ articles.number }} of {{ articles.paginator.num_pages }}.         </span>         {% if articles.has_next %}         <a href="?page={{ articles.next_page_number }}">next</a>         {% endif %}     </span> </div> 

i tried display form fields of event_form in 2 columns calling them 1 one suggested here, did not work either.
i'm stumped here, i'm sure it's minor thing i'm missing, after staring @ code days on end, don't see anymore. appreciated!

you have validation error, you'll never see it, because reinstantiate relevance_form, without passing post data, if form not valid. don't that, let form have fall through render call.


Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -