python - 呈现的表单没有将任何输入保存到数据库中,为什么它不起作用?
问题描述
我尝试通过执行 Forms.py 向 ContactModel 添加验证,但我离它太远了,现在不知道要修复它。有人可以帮忙吗?
def addContact(request):
form = ContactForm()
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# form = Contact(
# full_name = request.POST ('fullname'),
# relationship = request.POST ('relationship'),
# email = request.POST ('email'),
# phone_number = request.POST ('phone-number'),
# address = request.POST ('address'),
# )
form.save()
return redirect('/contact')
context = {'form': form}
return render(request, 'contact/new.html', context)
def contactProfile(request,pk):
contact = Contact.objects.get(id=pk)
return render(request, 'contact/contact-profile.html', {'contact': contact})
在我看来,在视图中我有大麻烦。当我填满所有字段时,数据并没有发送到数据库。
表格.py:
from django.forms import ModelForm
from .models import Contact
class ContactForm(ModelForm):
class Meta:
model = Contact
fields = '__all__'
模型.py:
from django.db import models
# Create your models here.
class Contact(models.Model):
full_name = models.CharField(max_length=500)
relationship = models.CharField(max_length=50)
email = models.EmailField(max_length=254)
phone_number =models.CharField(max_length=20)
address = models.CharField(max_length=100)
def __str__(self):
return self.full_name
解决方案
您的表单似乎无效,并且始终重定向到联系方式。仅当表单有效时才应使用重定向。否则,您将永远看不到您的表单包含哪些错误。
试试下面的代码:
def addContact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
form.save()
return redirect('/contact')
else:
form = ContactForm()
context = {'form': form}
return render(request, 'contact/new.html', context)
推荐阅读
- python - Python unstack value 错误:索引包含重复条目,无法重塑
- java - 为什么我的文件没有被读入,即使它的路径与成功读入文件的另一个项目相同?
- shibboleth - 获取:从 3.4.7 升级到 Shibboleth 4.1.4 后“配置文件操作 ValidateCredentials:没有可用或可用的验证器”
- php - 如何制作一个功能性的 PHP 联系表格,将电子邮件发送到将在 ftp 服务器上发布的网站上的@outlook.com 帐户?
- visual-studio-code - 断开连接后,有没有办法阻止 VS Code Remote SSH 失败?
- python - 如何使用 selenium Python 复制不在 html 代码中的输入文本
- android - Android Canvas 保存不同颜色的油漆
- flutter - 未定义命名参数“textColor”
- python - Lambda Python 依赖包错误 Runtime.ImportModuleError:无法导入模块“lambda_function”:没有名为“surveys”的模块
- css - 如何将两个网格彼此相邻