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 %}
{% 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.