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.

Reply via email to