Hi John
{% csrf_token %} must be definitely inside the <form> tag. It renders <input 
type="hidden" ...>.

Please try it and tell if it works.


Cheers,
  Tom

Dne Thu, 4 Apr 2013 14:38:58 -0700 (PDT)
John <[email protected]> napsal(a):

> This is Django 1.5
> Python 2.7.3
> MYSQL Database
> 
> Here is the model that I am using:
> 
> class SupportingDocument(models.Model):
> 
>     """Defines an archived attachment."""
> 
>     provision = models.ForeignKey(Provision, null = False, blank = False)
> 
>     submitted_by = models.CharField(max_length = 64, null = False, blank = 
> True, default = "")
> 
>     source_file_name = models.CharField(max_length = 256, null = False, 
> blank = False)
> 
>     content_type = models.CharField(max_length = 64, null = True, blank = 
> True, default = "")
> 
>     submission_time = models.DateTimeField()
> 
>     version = models.CharField(max_length = 32, null = True, blank = True, 
> default = "")
> 
>     comment = models.TextField(null = True, blank = True, default = "")
> 
>     saved_file = models.FileField(upload_to = "supporting_documents", null 
> = True, blank = True)
> 
>     
> 
>     def __init__(self, *args, **kwargs):
> 
>         super(SupportingDocument, self).__init__(*args, **kwargs)
> 
>         self.submission_time = datetime.today()
> 
>         
> 
>     def __unicode__(self):
> 
>         return self.source_file_name + ':' + unicode(self.submission_time)
> 
> 
> and the form definition
> 
> class SupportingDocumentForm(ModelForm):
> 
>     def __init__(self, *args, **kwargs):
> 
>         try:
> 
>             provision = None
> 
>             if 'provision' in kwargs:
> 
>                 self.provision = kwargs.pop('provision')
> 
>             if 'user' in kwargs:
> 
>                 self.submitted_by = kwargs.pop('user')
> 
>         except Exception, e:
> 
>             pass
> 
>         return super(SupportingDocumentForm, self).__init__(*args, **kwargs)
> 
>     
> 
>     class Meta:
> 
>         model = SupportingDocument
> 
>         exclude = ('provision', 'submitted_by', 'source_file_name', 
> 'content_type', 'submission_time')
> 
> 
>     def save(self, request=None, commit=True):
> 
>         try:
> 
>             supporting_document = super(SupportingDocumentForm, 
> self).save(commit=False)
> 
>             supporting_document.source_file = self.source_file
> 
>             supporting_document.provision = self.provision
> 
>             supporting_document.submitted_by = self.submitted_by
> 
>             supporting_document.save()
> 
>         except Exception, e:
> 
>             provisionLogger.error('Failure:%s when supplementing group 
> details' %(repr(e)))
> 
>             
> 
>     def as_table(self):
> 
>         try:
> 
>             response = super(SupportingDocumentForm, self).as_table()
> 
>         except Exception, e:
> 
>             pass
> 
>         return response
> 
> and the code to handle the request
> 
> def supporting_document_new(request):
> 
>     current_tab = "Data"
> 
>     current_section = "SUPDOCS"
> 
>     action_url = urlresolvers.reverse('provision-supporting-document-new')
> 
>     if request.POST:
> 
>         try:
> 
>             form = SupportingDocumentForm(request.POST,
> 
>                                           request.FILES,
> 
>                                           provision=request.provision,
> 
>                                           user=request.user)
> 
>             if form.is_valid():
> 
>                 supporting_document = form.save()
> 
>                 return redirect_to_url("provision-supporting-document-list")
> 
>         except Exception, e:
> 
>             modal_error_message = "Fatal error:" + repr(e)
> 
>             provisionLogger.error("Error saving Supporting Document %s" % 
> (supporting_document.source_file))
> 
>     else:
> 
>         try:
> 
>             form = SupportingDocumentForm(provision=request.provision, 
> user=request.user)
> 
>         except Exception, e:
> 
>             pass
> 
>     return render_to_response("provision/suppdocform.html", locals(), 
> context_instance=RequestContext(request))
> 
> and the html for the form
> 
> <p class="modal_form_header">Supporting Document <br/>{{ sourcefile }}</p>
> 
> <form method="post" enctype="multipart/form-data" action="{{ action_url }}" 
> id="supporting_document_form" class="provision_modal_form" name=
> "supporting_document_form">
> 
>     <table  class="provision_django_form_table">
> 
>         {{ form.as_table }}
> 
>      <tr></tr>
> 
>     <tr style="width: 100%;">
> 
>     <td colspan=2 style="width: 100%; text-align: center;">
> 
>    <input type="submit" name="submit" value="Submit" id="submit" />
> 
> <span id="end_of_submit_block"></span>
> 
> </td>
> 
> </tr>
> 
> <tr style="width: 100%;">
> 
> <td colspan=2 style="width: 100%; text-align: center;" class="errors">
> 
> {% if modal_error_message %}
> 
> {{ modal_error_message }}
> 
> {% else %}
> 
> &nbsp;&nbsp; 
> 
> {% endif %}
> 
> </td>
> 
>     </tr>
> 
>     </table> 
> 
> </form>
> 
> <div>{% csrf_token %}</div>
> 
> I am sure that there must be a problem with the html but this is driving me 
> crazy.  Probably some stupid typo.
> 
> When I set a breakpoint following the if request.POST the request.FILES is 
> an empty dictionary.
> 

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to