我正在努力学习使用表单来完成我正在做的个人项目。我有一个表单应该从文本框中获取文本并从中创建一个Question(我的模型之一)并将其添加到数据库中。然后我希望它将浏览器重定向到另一个页面。
class AddView(generic.FormView):
template_name = 'polls/contact.html'
form_class = AddForm
success_url = 'polls:index'
def form_valid(self, form):
form.add_question()
return super().form_valid(form)
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
return Question.objects.filter(pub_date__lte =timezone.now()).order_by('-pub_date')[:5]
这些是我正在使用的观点。 AddView再次输入我的问题文本,然后我想重定向到索引。
<form action="{% url 'polls:index' %}" method="post">
{% csrf_token %}
<label for="question_text">Your question: </label>
<input id="question_text" type="text" name="question_text" value="">
<input type="submit" value="OK">
</form>
这是我添加视图的模板。 这是我的添加问题的表格
class AddForm(forms.Form):
question_text = forms.CharField()
def add_question(self):
question = Question(question_text = self.question_text)
question.save()
return HttpResponseRedirect('polls:index')