Hi all,

I have a contact form that is supposed to save a message as well as a file
upload. When I use the admin site, I can save a contact record with a file
upload of any type.

However, saving from the 'front end' of my web application causes some
strange behaviour - the file is not uploaded, and the contact record is
saved twice as seen from the admin site.


My code is as follows:

----------------------------------------------------------------------------------------------------------------------------BEGIN
CODE-------------------------------------------------------------------------------------------------------------------------------------------
*html template:*

<form action=".#contact-form" method="post" enctype="multipart/form-data">{%
csrf_token %}
    <table cellpadding="0" cellspacing="0"
width="100%">
        <tr>
            <td align="right" valign="top"><label>Message</label></td>
            <td>{{ form.message }}</td>
        </tr>
        <tr>
            <td align="right" valign="top"><label>Upload File:</label></td>
            <td>{{ form.attachment }}</td>
        </tr>
         <tr>
            <td colspan="2" align="center"><input type="submit"
value="Submit Request" /></td>
        </tr>
    </table>
</form>

*view*:

@csrf_protect
def contact_us(request):
        form = form_capture(request)
    return render_to_response('front_end/standard_pages/contactus.html',
{'form': form, }, context_instance=RequestContext(request))

*the form_capture function (extra module named functions.py - keeps all my
custom functions)*:

def form_capture(request):
     if request.method == 'POST':
          form = ContactForm(request.POST)
          if form.is_valid():
               message = form.cleaned_data['message']
               attachment = form.cleaned_data['attachment']
               form.save()
     else:
        form = ContactForm()
     return form

*the form (forms.py):*

class ContactForm(ModelForm):
     class Meta:
          model = Contact
     message = forms.CharField(widget=forms.Textarea(attrs={'cols': 60,
'rows': 10, 'class': 'mceNoEditor'}))
     attachment = forms.FileField(required=False, widget=forms.FileInput())

*the Contact model (models.py):*

class Contact(models.Model):

     message = models.TextField(max_length=500)
     attachment = models.FileField(upload_to='attachments', blank=True)

     def __unicode__(self):
          return self.message[:10] + '...'

     class Meta:
          verbose_name_plural = "Contact Messages"

----------------------------------------------------------------------------------------------------------------------------END
CODE-------------------------------------------------------------------------------------------------------------------------------------------

Any ideas why saving a record from the contact form posts twice, and why the
file attachment is not uploaded?

Thanks!
-- 
Regards,
Sithembewena Lloyd Dube

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to