CommaSeparatedIntegerField立即浮现在脑海中.它实现为VARCHAR大多数数据库后端.可以肯定的是,你可能想要浏览一下django/db/backends/*.
CommaSeparatedIntergerField 自Django 1.9起不再可用:
从文档:
从1.9版开始不推荐使用:建议
CharField使用validators = [validate_comma_separated_integer_list] 弃用该字段 。
默认情况下,它设置一个逗号分隔的整数列表字段。
返回一个RegexValidator实例,该实例确保字符串由以sep分隔的整数组成。当allow_negative为True时,它允许使用负整数。
from django.db import models
from django.core.validators import int_list_validator
class YourModel(models.Model):
....
....
int_list = models.CharField(validators=int_list_validator)
....
Run Code Online (Sandbox Code Playgroud)
我正在使用 ArrayField:https ://docs.djangoproject.com/en/2.1/ref/contrib/postgres/fields/#querying-arrayfield
例如。
class Place(models.Model):
nearby_places_ids = ArrayField(models.IntegerField(null=True, blank=True), null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
用法:
place.nearby_places_ids = [1,2,3]
place.save()
models.Place.objects.filter(nearby_places_ids__contains=[1])
<QuerySet [<Place: Hostel DIC>]>
models.Place.objects.filter(nearby_places_ids__contains=[1,2,3,4])
<QuerySet []>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11719 次 |
| 最近记录: |