我熟悉基于模型表单创建表单的情况,在这种情况下,我可以使用form.save()
将数据保存到数据库中。问题是,如何保存/检索不是通过模型表单创建的该表单的数据?
我尝试了以下代码,但不确定如何从NameForm
检索和保存数据。
#forms.py file:
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label = 'your name', max_length = 100)
# views.py file
from django.shortcuts import render, redirect
from .forms import NameForm
def home(request):
return render(request, 'meal_plans/home.html')
def name(request):
if request.method != 'POST':
form = NameForm()
else:
form = NameForm(data=request.POST)
if form.is_valid():
your_name = form.cleaned_data['your_name']
return redirect('meal_plans:home')
return render(request, 'meal_plans/name.html', {'form': form})
# name.html template
<form action="{% url 'meal_plans:home' %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form
答案 0 :(得分:0)
一种选择是将数据保存在用户会话中。 docs很好地解释了如何实现这一点。在您的情况下,将是这样的:
if form.is_valid():
request.session['your_name'] = form.cleaned_data['your_name']
...
要在另一个视图中访问该会话变量,可以使用:
your_name = request.session.get('your_name')