Джанго Контактная форма - PullRequest
0 голосов
/ 03 февраля 2019

Я создал контактную форму, используя django, которая отправляет имя, электронную почту и сообщение.Форма успешно проходит с именем, прикрепленным к теме, однако в gmail приходит только часть сообщения, а не все сообщение.Как я могу получить полное сообщение, чтобы показать вам на учетной записи Gmail?

from django.db import models

# Create your models here.
class Contact(models.Model):

    name = models.CharField(max_length=30)
    email = models.EmailField()
    message = models.TextField()


    def __str__(self):
        return self.name

Формы

from django import forms
from django.forms import ModelForm
from .models import Contact

class ContactForm(forms.ModelForm):

    class Meta:
        model = Contact
        fields = ('name', 'email', 'message',)

views

def contact(request):
mapbox_access_token = 'pk.my_mapbox_access_token'
if request.method == 'GET':
    form = ContactForm()
else:
    form = ContactForm(request.POST)
    if form.is_valid():
        sender_name = form.cleaned_data['name']
        emailFrom = form.cleaned_data['email']
        message = "{0} has sent you a new message:\n\n{1}".format(sender_name, form.cleaned_data['message'])


        form.save()
        try:
            send_mail('New Enquiry', message, emailFrom, ['va.glazing@gmail.com'],fail_silently=False, )
        except BadHeaderError:
            return HttpResponse('Invalid header found')
        return redirect('success')

return render(request, "contact.html",{'form': form})
#settings

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '****.***.com'
EMAIL_HOST_PASSWORD = '******'
EMAIL_PORT = 587
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

Вот изображения результатов, которые я получаю после прохождения электронного письма.

https://i.stack.imgur.com/31SBv.png

https://i.stack.imgur.com/5MGgc.png

Ответы [ 2 ]

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

Из Django Docs :

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

Как видите, вы пишете сообщение и адрес электронной почты не в том месте.Место переключения должно решить проблему.

name будет вашей темой, email будет частью from и message содержанием сообщения.

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

Попробуйте добавить 'subject': forms.TextInput(attrs={'': ''}) к вашему widgets диктату, и аналогично вашей форме.Кажется, они сталкиваются.

...