django学习入门四:继续完善view视图,并介绍django的通用视图

本文介绍了如何在Django中继续完善投票应用的view视图,包括detail.html视图和form表单的实现,以及如何处理POST请求。同时,文章详细解释了如何使用Django的通用视图generic.DetailView和ListView来重构现有视图,以实现更简洁的代码。通过这些步骤,完成了官方投票小程序的功能,并在admin界面注册了Question和Choice模型,便于管理。
摘要由CSDN通过智能技术生成

      上一节,我们简单介绍了一下index视图,其他三个视图没有补全,现进行说明:

detail.html视图适用于投票页面

<h1>{
  { question.question_text }}</h1>

{% if error_message %}<p><strong>{
  { error_message }}</strong></p>{% endif %}

<form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
    <input type="radio" name="choice" id="choice{
  { forloop.counter }}" value="{
  { choice.id }}" />
    <label for="choice{
  { forloop.counter }}">{
  { choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>
说明:error_message是当view中捕获到异常后,填写error_message信息,然后回传回页面

form表单中有  单选按钮,label,按钮,采用post方式发送,并且url发送添加token,防止url被篡改

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse

from .models import Choice, Question
def vote(request, question_id):
    question = get_object_or_404(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值