博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django1.2中将ManyToManyField呈现为checkbox
阅读量:6820 次
发布时间:2019-06-26

本文共 817 字,大约阅读时间需要 2 分钟。

ManyToMany(一对多)关系,默认在呈现的时候是一个列表框,是可以多选则,需要使用按住ctrl或者shift键,然后点击鼠标才可以实现多选。

但是通常,这种多选应该使用checkbox来呈现,才好让大家理解和选择,否则大家可能不知道是可以多选的。

通过下面的代码就可以实现。

 

 
  1. class BlogForm(forms.ModelForm): 
  2.     prepopulated_fields={
    'slug':("title")} 
  3.      
  4.     categories = forms.ModelMultipleChoiceField( 
  5.                             queryset=Category.objects.all(), 
  6.                             widget=forms.CheckboxSelectMultiple()) 
  7.     tags=forms.ModelMultipleChoiceField( 
  8.                             queryset=Tag.objects.all(), 
  9.                             widget=forms.CheckboxSelectMultiple()) 
  10.      
  11.     class Meta: 
  12.         model=Blog 
  13.         exclude=["author"
  14.          

请注意上面代码中红色部分。

在django的form中有四个概念:

1. Widget,对应于html中的一个表单元素,例如<input type="text">或者是<textarea>,负责将widget呈现为html元素。

2. Field,负责验证表单元素的内容是否符合某种规则。

3. Form,是一个field的集合,知道如何验证和如何呈现表单元素。

4. Form Media,呈现Form元素所需要的css和javascript。

 

多选框正是使用了widget,将ManyToMany呈现为checkbox。

 

本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/794691,如需转载请自行联系原作者

你可能感兴趣的文章
前序遍历
查看>>
loadrunner检查点设置失败,日志中SaveCount无法被正常统计出来
查看>>
循环结构进阶
查看>>
bzoj 2809: [Apio2012]dispatching
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
记录一款Unity VR视频播放器插件的开发
查看>>
webApi跨域问题
查看>>
读取文件
查看>>
json字符串转换对象的方法1
查看>>
浅谈网站路径分析 转自“蓝鲸网站分析博客”
查看>>
C# Note36: .NET unit testing framework
查看>>
我的博客第一天
查看>>
Aptana studio 3前端开发编辑器推荐
查看>>
RMAN restore fails with ORA-01180: can not create datafile 1 (文档 ID 1265151.1)
查看>>
转 多个版本的数据库在同一服务器上ORA-12557
查看>>
Socket的长连接和短连接
查看>>
java求素数和求一个数的一个正整数的质因数
查看>>
centos6.6 部署 cacti 并采集交换机流量
查看>>
web 开发之js---巧用iframe实现jsp无刷新上传文件
查看>>
WMS相关中英文术语
查看>>