>>> django.__version__
'2.0.4'
我正在尝试使用名称和电子邮件创建一个简单的表单。
我看了这个链接 - https://docs.djangoproject.com/en/2.0/topics/forms/
但我无法弄清楚如何从表单中保存数据。
forms.py
class SubscribeForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
your_email = forms.EmailField(label='Your email', max_length=100)
views.py
def subscribe(request):
"""
View for form subscribe
"""
if request.method == 'POST':
form = SubscribeForm(request.POST)
if form.is_valid():
data_sub = form.save(commit=False)
data_sub.save()
else:
form = SubscribeForm()
return render(request, 'subscribe/subscribe.html', {'form': form})
models.py
from django.db import models
class Subscriber(models.Model):
name = models.CharField(max_length=255, blank=True, default="")
email = models.EmailField(max_length=255)
published_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return self.email
但是,data_sub = form.save
是不对的,如果我正确理解它,因为我使用forms.Form
。
form.cleaned_data
- 我必须用来保存数据,但我不明白该怎么做。
我希望得到你的帮助,谢谢你。
答案 0 :(得分:0)
class SubscribeForm(forms.ModelForm):
model = Subscriber
fields=['name','email']
答案 1 :(得分:0)
我正在编辑views.py
if form.is_valid():
obj = Subscriber()
obj.name = form.cleaned_data['your_name']
obj.email = form.cleaned_data['your_email']
obj.save()
return HttpResponseRedirect('/subscribe/thanks')
所有的工作。