Django не печатается почтовый запрос - PullRequest
2 голосов
/ 28 мая 2020

Я изучаю Django и создаю свой веб-сайт ... Создал и основал c HTML контактную форму и, чтобы проверить, работает ли она, я добавил опцию печати при отправке формы (метод == сообщение ), но

после отправки формы на терминале ничего не печатает

ниже приведены мои коды Спасибо за ваше время

views.py

def contact(request):

    if request.method == 'POST':
        print ("we are done")

    return render(request,"news/Home/Homepage.html")

_____ models.py _______

class Contact(models.Model):
    name=models.CharField(max_length=100)
    email=models.CharField(max_length=150)
    msg=models.TextField()

____ моя html контактная форма __________

<form class="grid-form" method="post" action="/">
{% csrf_token %}
    <div class="form-control narrow">
        <label for="name">Name</label>
        <input name="name" id="name" type="text">
    </div>
    <div class="form-control narrow">
        <label for="email">Email</label>
        <input name="email" id="email" type="email">

    </div>
    <div class="form-control">
        <label for="message">Message</label>
        <textarea name="message" id="message" rows="4"></textarea>
    </div>
    <ul class="actions">
        <li><input value="Send Message" type="submit"></li>
    </ul>
</form>

urls.py

from . import views

urlpatterns = [
    path("" , views.index),
    path("league",views.index2),
    path("pl",views.index3),
    path("ptable", views.index4),
    path("fs", views.index5),
    path("latest", views.index6),
    path("history", views.index7)
]

1 Ответ

0 голосов
/ 28 мая 2020

Укажите путь в вашем действии в форме:

<form class="grid-form" method="post" action="/">

Там должен быть атрибут action, который должен соответствовать пути, который вызовет функцию contact в views.py.

EDIT

Ваш urls.py не содержит URL-адреса, по которому вы могли бы отправить запрос из формы. Как я уже упоминал о action, ваш каталог home не входит в функцию index. Итак, вам нужно добавить путь для отправки запроса. Например:

from . import views

urlpatterns = [
    path("" , views.index),
    path("contact" , views.contact, name="contact"),    # Here
    path("league",views.index2),
    path("pl",views.index3),
    path("ptable", views.index4),
    path("fs", views.index5),
    path("latest", views.index6),
    path("history", views.index7)
]

И вы должны отправить форму по этому пути www.example.com/contact. Например:

<form class="grid-form" method="post" action="{% url 'contact' %}">

* Примечание: - Я дал значение действия в соответствии с именем, что является отличной практикой. Итак, давайте начнем давать имя в URL-адресе. Но то, как вы это сделали, тоже нормально.

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