15👍
CommaSeparatedIntergerField
is no more available since Django 1.9:
Deprecated since version 1.9: This field is deprecated in favor of
CharField
with validators=[validate_comma_separated_integer_list].
By default it sets a comma separated integer list field.
Returns a RegexValidator instance that ensures a string consists of
integers separated by sep. It allows negative integers when
allow_negative is 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)
....
16👍
I’m using ArrayField: https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/fields/#querying-arrayfield
eg.
class Place(models.Model):
nearby_places_ids = ArrayField(models.IntegerField(null=True, blank=True), null=True, blank=True)
with usage:
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 []>
- [Django]-How about having a SingletonModel in Django?
- [Django]-How to implement FirebaseDB with a Django Web Application
- [Django]-Django – How to pass several arguments to the url template tag
9👍
CommaSeparatedIntegerField comes to mind instantly. It is implemented as VARCHAR
on most database backends. To be sure though, you may want to skim through django/db/backends/*
.
- [Django]-Table thumbnail_kvstore doesn't exist
- [Django]-How does django handle multiple memcached servers?
- [Django]-405 "Method POST is not allowed" in Django REST framework
6👍
See this answer for a description of a possible alternative version of CommaSeparatedIntegerField that would do more of the work for you (converting from list to string and back). Maybe you could check in with that guy about whether he wrote it already 🙂
- [Django]-Django AutoField with primary_key vs default pk
- [Django]-How to test Django's UpdateView?
- [Django]-Django: how to do calculation inside the template html page?
4👍
If you’re using PostgreSQL, you can store array types natively.
See for example: https://github.com/aino/django-arrayfields and https://github.com/ecometrica/django-dbarray
- [Django]-Why does django run everything twice?
- [Django]-Do we need to upload virtual env on github too?
- [Django]-No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model
0👍
Use ArrayField . Here’s the syntax :
from django.contrib.postgres.fields import ArrayField
class SampleModel(models.Model):
my_integer_array = ArrayField(
models.IntegerField(),
default= [1,1,0,0], blank=False,null = False, size = 4)
To store a complete array :
SampleModel.my_integer_array = [3,4,5,6]
SampleModel.save()
To store/update a single element :
SampleModel.my_integer_array[2] =7
SampleModel.save()
To fetch the entire array :
my_variable = SampleModel.my_integer_array
To fetch a single element :
e = SampleModel.my_integer_array[3]
Note : ArrayField can only be used when you are using postgreSQL as the database
- [Django]-Why won't Django use IPython?
- [Django]-Missing Table When Running Django Unittest with Sqlite3
- [Django]-Django rest framework: query parameters in detail_route