Контактная форма Django не отображается в шаблоне - PullRequest
0 голосов
/ 21 февраля 2019

Я застрял с этой проблемой в течение нескольких дней.Я искал в Интернете и даже в стеке, но не смог найти решение, я был бы признателен за любую помощь, которую я могу получить в этом.Я очень плохо знаком с программированием и пытаюсь создать контактную форму, чтобы пользователи могли отправлять электронные письма зарегистрированным пользователям с помощью контактной формы.Когда я открывал страницу в браузере, отображались только «Отправить сообщение» и кнопка «Отправить».Фактическая форма не.

У меня есть следующие коды: PS, я импортировал все необходимые модули.

forms.py:

class ContactForm(forms.Form):
    contact_name = forms.CharField(required=True)
    contact_email = forms.EmailField(required=True)
    content = forms.CharField(
        required=True,
        widget=forms.Textarea
    )

views.py:

def profile_contact(request):
    if request.method == 'POST':
        pc_form = ContactForm(request.POST)
        if pc_form.is_valid():
            sender_name = pc_form.cleaned_data['contact_name']
            sender_email = pc_form.cleaned_data['contact_email']

            message = "{0} has sent you a new message:\n\n{1}".format(sender_name, pc_form.cleaned_data['content'])
            send_mail('New Enquiry', message, sender_email, ['enquiry@exampleco.com'])

        return redirect('home')
    else:
        pc_form = ContactForm()
    return render(request, 'contact_profile.html', {'form': pc_form})

urls.py:

path('profile_contact/', user_view.profile_contact, name='profile_contact'),

contact_profile.html:

{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
        <form action="" method="POST">
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">Send your message</legend>
                {% csrf_token %}
                {{ pc_form | crispy }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" 
type="submit">Submit</button>
            </div>
        </form>
    </div>
{% endblock %}

Спасибо за помощь.

1 Ответ

0 голосов
/ 22 февраля 2019

В views.py при рендеринге страницы вы используете {'form': pc_form}, тогда как в html вы ссылаетесь на форму {{pc_form |хрустящий}}.Измените 'form' на 'pc_form'.

...