Django的定制字段,用于在数据库中通过分隔符分离多个值并以列表形式检索它们
项目描述
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.py
from django.db import models
from separatedvaluesfield.models import SeparatedValuesField
class Project(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.py
from django.db import models
from separatedvaluesfield.models import SeparatedValuesField
class Project(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
《分隔值字段》的行为类似于一个《字符字段》,使用标记(默认为《,》)分隔值。
当你使用模型创建《forms.ModelForm》时,该字段会转换为《多选字段》。
用法
>>> from myapp.models import Project
>>> project = Project(name='Project with strings', languages=['fr', 'en'])
>>> project.save() # save 'fr,en' in database for the column "languages"
>>> project.pk
1
>>> 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》
如果所有测试都通过,提交一个拉取请求
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于《安装软件包》的信息。
源分布
关闭
django-separatedvaluesfield-0.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 15cf53a287e6c3ca492fb78aed040a683df037cc5aabe32e95292aed02efc59b |
|
MD5 | fa6e48b12f4d37e6df7b997929766cea |
|
BLAKE2b-256 | a180fdcd24f188a5e79ee1648f152249d52bb9c0327d0ac2e0d8de6aaaa31f59 |