这是我的代码:
我的forms.py看起来像:
from django import forms
class SimpleForm(forms.Form):
website = forms.URLField(required=True,
widget=forms.TextInput(
attrs={'placeholder': "http://www.example.com"}))
email = forms.EmailField(required=True,
widget=forms.TextInput(
attrs={'type': 'email',
'placeholder': "john.doe@example.com"
}))
我的views.py看起来像:
from django.shortcuts import render, redirect
from django.template import loader
from .forms import SimpleForm
def simple_form(request):
if request.method == 'POST':
form = SimpleForm(request.POST)
if form.is_valid():
website = form.cleaned_data['website']
email = form.cleaned_data['email']
return render(request, 'some_page.html')
else:
form = SimpleForm()
return render(request, 'some_other_page.html', {'form': form})
至于我的HTML表单,它如下所示:
<form method="post">
{% csrf_token %}
<div class="some-class">
<label for="website">Enter Your Site:</label>
<!-- <input type="text" id="website" placeholder="http://www.example.com" name="website" /> -->
{{ form.website }}
<label for="email">Enter Your Email:</label>
<!-- <input type="text" id="email" placeholder="john.doe@example.com" name="website" /> -->
{{ form.email }}
</div>
<div class="some-other-class">
<div class="another-class">
<button name="submit">Submit</button>
</div>
</div>
</form>
我的问题是,如何将此表单的输入放入postgres数据库中的表中?
答案 0 :(得分:1)
您可以制作ModelForm而不是表单,然后将表单转换为模型:
class SimpleModel(models.Model):
website = models.URLField(
required=True,
widget=forms.TextInput(attrs={'placeholder': "http://www.example.com"}))
email = models.EmailField(
required=True,
widget=forms.TextInput(attrs={'type': 'email', 'placeholder': "john.doe@example.com"}))
class SimpleForm(forms.ModelForm):
class Meta:
model = SimpleModel
fields = ['website', 'email']
按照链接查看文档,你可以使它非常抽象,Django可以为你处理大部分事情。
保存后,您可以form.save()
看到here
首先通过form.is_valid()
示例视图:
def simple_form(request):
if request.method == 'POST':
form = SimpleForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'some_page.html')
form = SimpleForm()
return render(request, 'some_other_page.html', {'form': form})
您还可以关注this tutorial以了解Django基础知识 听起来你可以使用基础知识;)