django的自定义字段,用于使用分隔符分隔数据库中的多个值并将其作为列表检索
django-separatedvaluesfield的Python项目详细描述
替代支持CommaSeparatedIntegerField的内置字段 MultipleChoiceField,自定义分隔符并以列表形式返回值。
安装
从PyPi:
安装包pip install django-separatedvaluesfield
或者从GitHub下载存档并继续手动安装:
curl -L https://github.com/thoas/django-separatedvaluesfield/tarball/master | tar zx cd thoas-django-separatedvaluesfield python setup.py install
将SeparatedValuesField添加到django模型:
# models.pyfromdjango.dbimportmodelsfromseparatedvaluesfield.modelsimportSeparatedValuesFieldclassProject(models.Model):name=models.CharField(max_length=150)languages=SeparatedValuesField(max_length=150,token=',',choices=(('en','English'),('fr','French')))
如果您的选择值不是字符串,请使用类型添加cast选项 要应用于值(默认为django.utils.six.text_type):
# models.pyfromdjango.dbimportmodelsfromseparatedvaluesfield.modelsimportSeparatedValuesFieldclassProject(models.Model):name=models.CharField(max_length=150)languages=SeparatedValuesField(max_length=150,cast=int,token=',',choices=((1,'English'),(2,'French')))
如果运行的是django<;=1.6,请使用syncdb:
同步数据库python manage.py syncdb
如果正在运行django>;=1.7,请使用migrate:
同步数据库python manage.py migrate
SeparatedValuesField的行为类似于CharField,它将值与 令牌(默认为,)。
当您是 使用模型创建forms.ModelForm。
用法
>>> frommyapp.modelsimportProject>>> project=Project(name='Project with strings',languages=['fr','en'])>>> project.save()# save 'fr,en' in database for the column "languages">>> project.pk1 >>> project=Project.objects.get(pk=1)>>> project.languages['fr', 'en'] # If you added "cast" option to the field to cast to 'int' >>> project=Project(name='Project with integers',languages=[u'1',u'2'])>>> project.save()# save '1,2' in database for the column "languages">>> project=Project.objects.get(pk=1)>>> project.languages[1, 2]
贡献
- 分叉存储库
- 克隆您的叉子
- 创建专用分支(永远不要在master中工作)
- 使用make dev 创建开发环境
- 使用source .venv/bin/activate 激活您的环境
- 进行修改
- 编写测试并使用make test 执行它们
- 使用tox 确保所有测试通过
- 如果所有测试都通过,请提交拉取请求