从 Django 表单中恢复数据
Recover data from a Django Form
这是我第一次参加 Django 表单挑战。
现在的挑战只是从 HTML 模板获取 last_name 信息并从视图存储到数据库中。所以我有一个场景:
models.py:
class Person(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
一个HTML模板,下面我只放表格部分:
<form action="{% url 'store' %}" method="post">
{% csrf_token %}
<div class="form-group row">
<label for="last_name" class="col-sm-2 col-form-label">Last Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="last_name" placeholder="Last Name">
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Send Last Name</button>
</div>
</div>
</form>
以及 views.py 本身...我创建了一个 InsertLastName ModelForm 来存储表单中的数据,但没有成功。出于某种原因,当我尝试调用 form.cleaned_data 时,收到有关 is_valid() 验证的错误消息。看来我没有从标签中获取信息。
class InsertLastName(forms.ModelForm):
class Meta:
model = Person
fields = ['last_name']
exclude = ['first_name']
def index(request):
persons = Person.objects.all()
context = {'persons': persons}
return render(request, '/index.html', context)
def store(request):
form = InsertLastName(request.POST or None)
print(form.cleaned_data['last_name'])
return HttpResponse("Storing a new Last Name object into storage")
从我表单中的 last_name 标签获取信息的正确方法是什么?
我正在关注 documentation 并根据挑战模板进行编码。
您刚刚为输入的 html 标签设置了属性名称
示例:
<input type="text" name="first">
并在 view.py 的函数存储中获取输入:
request.POST.get("first")
将此添加到表单中的 html 模板
{{persons}}
这是我第一次参加 Django 表单挑战。 现在的挑战只是从 HTML 模板获取 last_name 信息并从视图存储到数据库中。所以我有一个场景:
models.py:
class Person(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
一个HTML模板,下面我只放表格部分:
<form action="{% url 'store' %}" method="post">
{% csrf_token %}
<div class="form-group row">
<label for="last_name" class="col-sm-2 col-form-label">Last Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="last_name" placeholder="Last Name">
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Send Last Name</button>
</div>
</div>
</form>
以及 views.py 本身...我创建了一个 InsertLastName ModelForm 来存储表单中的数据,但没有成功。出于某种原因,当我尝试调用 form.cleaned_data 时,收到有关 is_valid() 验证的错误消息。看来我没有从标签中获取信息。
class InsertLastName(forms.ModelForm):
class Meta:
model = Person
fields = ['last_name']
exclude = ['first_name']
def index(request):
persons = Person.objects.all()
context = {'persons': persons}
return render(request, '/index.html', context)
def store(request):
form = InsertLastName(request.POST or None)
print(form.cleaned_data['last_name'])
return HttpResponse("Storing a new Last Name object into storage")
从我表单中的 last_name 标签获取信息的正确方法是什么? 我正在关注 documentation 并根据挑战模板进行编码。
您刚刚为输入的 html 标签设置了属性名称 示例:
<input type="text" name="first">
并在 view.py 的函数存储中获取输入:
request.POST.get("first")
将此添加到表单中的 html 模板
{{persons}}