Python django的联系方式
我有一个联系表,所有的工作没有任何错误,我唯一不明白的是当我点击发送按钮没有消息接收,谁能告诉我为什么或什么是错误的,请? 我只有一个页面叫联系人,没有谢谢页面! 谢谢 这是我的密码: models.py 从django.db导入模型Python django的联系方式,python,django,email,send,contact,Python,Django,Email,Send,Contact,我有一个联系表,所有的工作没有任何错误,我唯一不明白的是当我点击发送按钮没有消息接收,谁能告诉我为什么或什么是错误的,请? 我只有一个页面叫联系人,没有谢谢页面! 谢谢 这是我的密码: models.py 从django.db导入模型 class Subject(models.Model): question_ = 0 question_one = 1 question_two = 2 question__three = 3 STATUS_CHOICE
class Subject(models.Model):
question_ = 0
question_one = 1
question_two = 2
question__three = 3
STATUS_CHOICES = (
(question_, ''),
(question_one, 'I have a question'),
(question_two, 'Help/Support'),
(question__three, 'Please give me a call'),
)
class Contact(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(max_length=150)
subject = models.CharField(choices=Subject.STATUS_CHOICES, default=1, max_length=100)
phone_number = models.IntegerField()
message = models.TextField()
def save(self, *args, **kwargs):
super(Contact, self).save(*args, **kwargs)
return 'Contact.save'
froms.py
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
import floppyforms as forms
from django_enumfield import enum
class SubjectEnum(enum.Enum):
question_ =0
question_one = 1
question_two = 2
question__three = 3
STATUS_CHOICES = (
(question_, ''),
(question_one, 'I have a question'),
(question_two, 'Help/Support'),
(question__three, 'Please give me a call'),
)
class ContactForm(forms.Form):
name = forms.CharField(required=True)
email = forms.EmailField(required=True)
subject = forms.TypedChoiceField(choices=SubjectEnum.STATUS_CHOICES, coerce=str)
phone_number = forms.IntegerField(required=False)
message = forms.CharField(widget=forms.Textarea)
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.add_input(Submit('submit', 'Submit'))
super(ContactForm, self).__init__(*args, **kwargs)
views.py
from django.conf import settings
from django.core.mail import send_mail
from django.views.generic import FormView
from .forms import ContactForm
class ContactFormView(FormView):
form_class = ContactForm
template_name = "contact/email_form.jade"
success_url = '/email-sent/'
def form_valid(self, form):
message = "{name} / {email} said: ".format(
name=form.cleaned_data.get('name'),
email=form.cleaned_data.get('email'))
message += "\n\n{0}".format(form.cleaned_data.get('message'))
send_mail(
subject=form.cleaned_data.get('subject').strip(),
message=message,
from_email="info@example.com",
recipient_list=[settings.LIST_OF_EMAIL_RECIPIENTS],
)
return super(ContactFormView, self).form_valid(form)
本部分可能存在以下问题:
recipient_list=[settings.LIST_OF_EMAIL_RECIPIENTS],
如果settings.LIST\u OF\u EMAIL\u RECIPIENTS
已经是一个列表,那么您将它嵌套在另一个列表中
无论如何,作为一般规则,当某些东西不起作用时,您应该在调试器中单步执行代码,或者放置print语句,以查看代码运行时发生的情况。这将使您的过程更加轻松。有一种简单而更好的方法
class Subject(models.Model):
question_ = 0
question_one = 1
question_two = 2
question__three = 3
STATUS_CHOICES = (
(question_, ''),
(question_one, 'I have a question'),
(question_two, 'Help/Support'),
(question__three, 'Please give me a call'),
)
你不需要新的类,只是这样,当你看到0,1,2,3将识别每个选择时,你可以在第一部分中添加任何内容,例如0,1,2,3,或“IHAQ”是“我有一个问题”的缩写
表单是否正在验证?也就是说,是调用了form_valid(),还是改为调用form_invalid()?据我所知,是调用了有效的表单。我得到这个作为测试已经创建了接触模型和下拉主题。这样做的目的是保存从表单收到的所有电子邮件。感谢您的回复,不幸的是,当我单独运行此文件时,我得到的是:file“/home/vagrant/.virtualenvs/base/local/lib/python2.7/site packages/django/conf/uuuu init_uuu.py”,第47行,在安装程序(desc,环境变量)中)django.core.exceptions.ImpropertlyConfigured:请求设置默认\索引\表空间,但未配置设置。在访问设置之前,您必须定义环境变量DJANGO_SETTINGS_MODULE或调用SETTINGS.configure()。您不能单独运行此文件。将打印语句放入该文件中,然后通过在浏览器中加载该页面来运行该文件。或者,更好的方法是使用像PyCharm或PyDev这样的IDE,您可以使用断点而不是打印语句。嗨,RexE,关于我在forms.py文件和views.py文件之间的错误,与设置或以上问题无关。我已经问过给我表格的人了。如果有人有任何想法或帮助,我将不胜感激。问题在于这两个文件form.py和view.py之间。
STATUS_CHOICES = (
("0", ""),
("1", "I have a question"),
("2", "Help/Support"),
("3", "Please give me a call"),
)