Django多选字段
django-multipleselectfield的Python项目详细描述
django multiselectfield
一个新的模型域和表单域。有了这个,你可以从一个选项中得到多个选择。以逗号分隔值的字符域存储到数据库
这个包裹的灵感来自这个snippet。
支持的python版本:2.7、3.4+
支持的django版本:1.11-2.1+
安装
使用pip
安装$ pip install django-multipleselectfield
配置您的模型。py
frommultiselectfieldimportMultiSelectField# ...MY_CHOICES=(('item_key1','Item title 1.1'),('item_key2','Item title 1.2'),('item_key3','Item title 1.3'),('item_key4','Item title 1.4'),('item_key5','Item title 1.5'))MY_CHOICES2=((1,'Item title 2.1'),(2,'Item title 2.2'),(3,'Item title 2.3'),(4,'Item title 2.4'),(5,'Item title 2.5'))classMyModel(models.Model):# .....my_field=MultiSelectField(choices=MY_CHOICES)my_field2=MultiSelectField(choices=MY_CHOICES2,max_choices=3,max_length=3)
在您的设置中。py
如果要翻译django multiselectfield,只需要它
INSTALLED_APPS=('django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.admin',#.....................#'multiselectfield',)
自定义模板
可以在表单模板中自定义此小部件的HTML。为此,您需要循环form.{field}.field.choices。下面是一个示例,在名为providers的MultiSelectField复选框下面/后面显示字段标签:
{%forvalue,textinform.providers.field.choices%}<divclass="ui slider checkbox"><inputid="id_providers_{{forloop.counter0}}"name="{{form.providers.name}}"type="checkbox"value="{{value}}"{%ifvalueinchecked_providers%}checked="checked"{%endif%}><label>{{text}}</label></div>{%endfor%}
django rest框架
Django REST Framework附带了一个MultipleChoiceField,它可以完美地处理以下问题:
fromrest_frameworkimportfields,serializersfrommyapp.modelsimportMY_CHOICES,MY_CHOICES2classMyModelSerializer(serializers.HyperlinkedModelSerializer):# ...my_field=fields.MultipleChoiceField(choices=MY_CHOICES)my_field2=fields.MultipleChoiceField(choices=MY_CHOICES2)# ...
开发
通过克隆其git存储库,您可以获得django multiselectfield的最后一个出血边缘版本:
git clone https://github.com/idenfy/django-multiselectfield
示例项目
在example directory中有一个完全配置的示例项目。您可以像往常一样运行它:
python manage.py migrate python manage.py loaddata app_data python manage.py runserver
0.2.0(2017-05-10)
- 增加了对django 2.0+的支持
- 增加了对Python3.7的支持
0.1.6(2017-05-10)
- 增加了对django 1.11的支持
- 增加了对Python3.6的支持
- 在django admin中改进了渲染
- 改进的文档
0.1.5(2017-01-02)
- 增加了对Django 1.8-1.10的支持
- 在选项中添加了对命名组的支持
- 增加了对min_choices参数的支持
- 各种修复
- 更多测试
0.1.4(2016-02-23)
- 修正了有关子字段数据库的警告
- 增加了对django 1.8+的支持
- 添加了对命名组的支持
- 我们现在与django dynamic fixture合作愉快
- 更多测试
0.1.3(2014-10-13)
- 支持Django 1.7(很抱歉延误)
- 添加get_field_list函数
- 修复在管理站点重新启动multiselectfield时出现的错误
0.1.2(2014-04-04)
- 包括西班牙对皮皮蛋的翻译
- 自述文件的改进
- Windows操作系统兼容性
0.1.1(2013-12-04)
- 将multiselectfield应用移动到父文件夹
- 详细信息
0.1.0(2013-11-30)
- 测试/示例项目
- 如果元组列表的第一个成分是整数,则现在可以工作了
- 现在不需要最大长度,多选字段会自动计算它。
- max_choices属性可以是模型字段中的属性
- 重构代码
- 西班牙语翻译
- 支持python2.6
0.0.3(2013-09-11)
- 与python 3兼容
- 修正一个错误,当选择是可翻译的时,代码片段有另一个错误
- REA的改进dme文件
0.0.2(2012-09-28)
- 修复错误时,代码段出错。
0.0.1(2012-09-27)
- 下一个snippet的初始版本