i am having difficulty in saving the form data to the database. After the user submits the form; fields such as ticket_id , created_date, etc have to be added to the POST request which is generated as a result of the form submission. I have copied the POST data to another dictionary and appended the other fields. The form isn't getting validated when the is_valid() fn is called.
i am attaching the submit function in the views.py file and the forms.py file def submit(request): context=RequestContext(request) if(request.method=="POST"): print request.POST print "________________________\n" data = request.POST.copy() #data=request.POST print "\n" print request.user.email data['created_date_time']=datetime.datetime.now() data['overdue_date_time']=datetime.datetime.now() Date=datetime.datetime.now() Enddate=Date+datetime.timedelta(days=1) data['overdue_date_time']=Enddate data['closed_date_time']=Enddate data['status']=0 # 0 means that the ticket is still open and not yet answered data['reopened_date_time']=Enddate data['topic_priority']=2 # 2 is the default priority of medium data['duration_for_reply']=24 #in hours if request.user.is_authenticated(): print request.user data['user_id']=request.user.email #returns a user object if the user is logged in. @login_required is thus necessary else: return HttpResponse("you need to be a valid user to submit a ticket. click <a href=''>here</a> to go to the login page") #let the help topic remain the same #category_selected=data['help_topic'] #data['help_topic']=Category.objects.get(category="android")#category_selected)#get is used to get a single object from django.db.models import Max last_ticket=int(Ticket.objects.all().aggregate(Max('ticket_id'))['ticket_id__max']) data['ticket_id']=last_ticket+1 #if 'submit' in data: del data['submit'] #if 'csrfmiddlewaretoken' in data: del data['csrfmiddlewaretoken'] #user_form=SubmitTicketForm(data) print data user_form=SubmitTicketForm(data) #how to validate the form for yourself if user_form.is_valid(): print user_form.cleaned_data # user_form=Ticket.objects.set(topic_id=data['user_id']) user_form.save() return HttpResponse("Saved successfully") #else: # print data # return HttpResponse("Saved unsuccessfully") # print "the errors are" # print user_form.errors else: user_form=SubmitTicketForm() return render_to_response( 'submit.html', {'user_form': user_form}, context) from user_tickets.models import * from django import forms from django.contrib.auth.models import User import datetime from datetime import timedelta from django.db.models import Max class SubmitTicketForm(forms.ModelForm): status=forms.IntegerField(widget=forms.HiddenInput(),initial=0) topic_priority=forms.IntegerField(widget=forms.HiddenInput(),initial=2) duration_for_reply=forms.IntegerField(widget=forms.HiddenInput(),initial=24) ticket_id=forms.IntegerField(widget=forms.HiddenInput(),initial=786)#(int(Ticket.objects.all().aggregate(Max('ticket_id'))['ticket_id__max']))+1) created_date_time=forms.DateTimeField(widget=forms.HiddenInput(),initial=datetime.datetime.now()) overdue_date_time=forms.DateTimeField(widget=forms.HiddenInput(),initial=datetime.datetime.now()) closed_date_time=forms.DateTimeField(widget=forms.HiddenInput(),initial=datetime.datetime.now()) reopened_date_time=forms.DateTimeField(widget=forms.HiddenInput(),initial=datetime.datetime.now()) class Meta: model=Ticket fields=('user_id','topic_id','message','ticket_id','status','topic_priority','duration_for_reply','created_date_time','overdue_date_time','closed_date_time','reopened_date_time') #'created_date_time','overdue_date_time','closed_date_time','reopened_date_time', -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/aaaf1256-bdbf-46e8-a356-5c44edcd0a14%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.