Глобальные переменные не работают в моем шаблоне формы контакта? - PullRequest
0 голосов
/ 15 февраля 2012

Не уверен, что происходит.Я добавил контактную форму на веб-сайт (она работает), но когда я связал ее с моим base.html, я заметил, что мое меню не работает (переменная #global) на этом конкретном сайте (HTML выглядит так, что меню вообще нет, простоДив окружающий его).Это глючит только в contact_form.html, который содержит мою форму.Есть идеи, почему это произошло?

forms.py

class ContactForm(forms.Form):
    name = forms.CharField(required=False, label='Your name')
    email = forms.EmailField(label='E-mail address')
    subject = forms.CharField(label='Subject')
    phone = forms.CharField(required=False, label='Phone number')
    message = forms.CharField(label='Your message')

views.py

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            message = cd['message']
        # construct the message body from the form's cleaned data
        body = """\
        from: %s
        name: %s
        phone: %s
        message: %s""" % (cd['email'], cd['name'], cd['phone'], cd['message'])
        send_mail(
                  cd['subject'], #subject is here
                  body, #here is the message
                  settings.DEFAULT_FROM_EMAIL, # from
                  [settings.DEFAULT_FROM_EMAIL] # to
        )
        return HttpResponseRedirect('/contact/thanks/')
    else:
        form = ContactForm()
    csrf_form = {'form': form}
    csrf_form.update(csrf(request))
    return render_to_response('contact_form.html',csrf_form)

1 Ответ

0 голосов
/ 19 апреля 2012

aganders3 был прав.

Я думаю, что нашел свое решение здесь: https://docs.djangoproject.com/en/dev/ref/templates/api/

исправил приведенный выше код так, что он выглядит следующим образом:

return render_to_response('contact_form.html',
                          csrf_form,
                          context_instance=RequestContext(request)
                          )

Все работает как положено сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...