python - 使用基于类的视图处理表单时字典的初始值
问题描述
我在 Django 文档站点中阅读了基于类的视图页面,并偶然发现了以下代码示例:
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.views import View
from .forms import MyForm
class MyFormView(View):
form_class = MyForm
initial = {'key': 'value'}
template_name = 'form_template.html'
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial)
return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
# <process form cleaned data>
return HttpResponseRedirect('/success/')
return render(request, self.template_name, {'form': form})
我的问题是为什么我应该创建initial = {'key': 'value'}
字典。
解决方案
该initial
属性不是强制性的。它的默认值是一个空字典。如果您想在表单中预填充字段,您会使用它,可能是因为大多数用户会选择它。例如,如果您有一个名为 的字段country
,您可以设置initial = {'country':'USA'}
为在呈现视图时为用户填充该字段。
推荐阅读
- tableau-api - 通过rest api重置tableau视图的默认过滤器
- jquery - jQuery - 通过定位元素类型查找元素之间的空间
- delphi - 如何使用 RTTI 分配 OleVariant?// 将 OleVariant 或 Variant 转换为具有特定 TTypeKind 或 TRTTIType 的 TValue?
- android-studio - Android Studio 创建项目屏幕今天变了
- node.js - 当我将 NWJS(Node Webkit)应用程序与 Web Workers 一起使用时,它在 Linux 系统上没有响应
- php - Woo commerce 我的账户名修改?
- jquery - 405 状态未找到方法
- reactjs - 如何在 Visual Studio 代码中调试反应本机应用程序?
- php - PHP + Dropbox,通过 CURL 获取缩略图返回较大缩略图的第一位
- ruby-on-rails - 简单表单上的 Rails 4 客户端验证不能内联工作?