That might be trivial, but you didn't show more views, so - do you add
a form instance to the template context in every view?

On Jul 2, 6:35 pm, 10000angrycats <christopher.liversi...@gmail.com>
wrote:
> Hi everyone, long time lurker, first time botherer.
>
> I hope someone here can help me out (& possibly a few other Django
> n00bs in the future too).
>
> I've dug around as best I can but can't find a - probably simple -
> solution to an issue I'm having. I've created a simple contact form as
> described here:http://www.djangobook.com/en/2.0/chapter07/but I've
> extended it slightly by using an include on the form to pull it in to
> multiple templates.
>
> & it works great for the /contact/ URL, but won't return the form
> fields on any other views. Here's the code:
>
> /contact/forms.py --------------
> from django import forms
>
> class ContactForm(forms.Form):
>         subject = forms.CharField(max_length=250)
>         email = forms.EmailField(required=False, label='Your e-mail address')
>         message = forms.CharField(widget=forms.Textarea)
>
> /contact/views.py --------------
> from django.shortcuts import render_to_response
> from website.contact.forms import ContactForm
> from django.core.mail import send_mail
> from django.http import HttpResponseRedirect
>
> def contact(request):
>         if request.method == 'POST':
>                 form = ContactForm(request.POST)
>                 if form.is_valid():
>                         cd = form.cleaned_data
>                         send_mail(
>                                 cd['subject'],
>                                 cd['message'],
>                                 cd.get('email', 'nore...@queryclick.com'),
>                                 ['cont...@queryclick.com'],
>                         )
>                         return HttpResponseRedirect('/contact/thanks/')
>         else:
>                 form = ContactForm(
>                         initial={'subject': 'Get in touch!'}
>                 )
>         return render_to_response('contact/contact.html', {'form': form})
>
> urls.py --------------
> from django.conf.urls.defaults import *
> from website.contact.views import contact
> from website.views import subdomain_homepage, qc_contact
>
> # Enables Django Admin.
> from django.contrib import admin
> admin.autodiscover()
>
> urlpatterns = patterns('',
>         (r'^admin/doc/', include('django.contrib.admindocs.urls')),
>         (r'^admin/(.*)', admin.site.root),
>         (r'^accounts/', include('registration.urls')),#Django Registration
> URLs
>         (r'^$', subdomain_homepage),#Subdomain Homepages
>         (r'^contact/$', contact),#Contact Form
> )
>
> & root views.py --------------
> from django.shortcuts import render_to_response
> from django.contrib.sites.models import Site
> from django.core.mail import send_mail
>
> ...
>
> def qc_contact(request):
>         return render_to_response('contact/contact.html', locals())
>
> I use an include: {% include "contact/contact_snippet.html" %} in
> contact.html and when I go to /contact/ it works perfectly, but
> whenever I use the include on other templates the form doesn't show.
>
> Any ideas on the blindingly obvious that I'm missing?
>
> 10000angrycats
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@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