81👍
I’d have two advices for you:
1) Use ArrayField
if you are using PostgreSQL as your database. You can read more about ArrayField
here.
2) Encode your array as JSON and store it either as a plain string or using a JSONField
as found here.
I’d personally prefer option number 1 since that is the cleaner and nicer way but depending on what you are actually using to store your data that might not be available to you.
30👍
Yes, you can use it like this:
from django.contrib.postgres.fields import ArrayField
class Board(models.Model):
pieces = ArrayField(ArrayField(models.IntegerField()))
However, it can only be available when using PostgreSQL for the database.
- [Django]-Django create userprofile if does not exist
- [Django]-How do I include related model fields using Django Rest Framework?
- [Django]-Celery parallel distributed task with multiprocessing
12👍
If you aren’t using Postgres, I recommend Django’s validate_comma_separated_integer_list
validator.
You use is as a validator on a CharField()
.
- [Django]-Django – limiting query results
- [Django]-Django: Display Choice Value
- [Django]-TransactionManagementError "You can't execute queries until the end of the 'atomic' block" while using signals, but only during Unit Testing
3👍
I don’t know why nobody has suggested it, but you can always pickle things and put the result into a binary field.
The advantages of this method are that it will work with just about any database, it’s efficient, and it’s applicable to more than just arrays. The downside is that you can’t have the database run queries on the pickled data (not easily, anyway).
- [Django]-Django abstract models versus regular inheritance
- [Django]-How to loop over form field choices and display associated model instance fields
- [Django]-How to set a Django model field's default value to a function call / callable (e.g., a date relative to the time of model object creation)
1👍
you can store a json and good to go with sub arrays of that JSON:
if (data != "attachmentto") {
formData.append(data, this.recipe[data])
console.log('rec data ', data)}
else if (data == "attachmentto") {
console.log('rec data434 ', this.recipe.attachmentto)
var myObj = { name: this.recipe.attachmentto.name, age: 31, city: "New York" };
let kokos = JSON.stringify(myObj);
// this.recipe.attachmentto.name = this.recipe.attachmentto.name
formData.append('attachmentto', kokos)
}
Django backend:
class Video(models.Model):
objects = models.Manager()
title = models.CharField(max_length=80)
description = models.TextField(max_length=300)
picture = JSONField(encoder=None)
price = models.IntegerField(default=0)
url = models.URLField()
category = models.CharField(max_length=50)
subcategory = models.TextField(max_length=50)
attachmentto = JSONField(encoder=None)
# attachmentto2 = models.JSONField()
user = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
and result on backend API:
{
"id": 174,
"title": "ads",
"description": "ads",
"picture": {
"name": "https://v3.vuejs.org/logo.png"
},
"price": 0,
"user": 1,
"rating_average": 0,
"attachmentto": {
"age": 31,
"city": "New York",
"name": [
"https://restdj.herokuapp.com/media/uploads/ftf_3_cJ0V7TF.png",
"https://restdj.herokuapp.com/media/uploads/ftf_3.jpg"
]
}
},
I call it noicely(nicely). Notice that we send a JSON and we have a array in that JSON
Kokos is the full JSON disagned for djangoo:
var myObj = { name: this.recipe.attachmentto.name, age: 31, city: "New York" };
let kokos = JSON.stringify(myObj);
formData.append(‘attachmentto’, kokos)
Above; name: this.recipe.attachmentto.name is an array
Here is the array:
"name": [
"https://restdj.herokuapp.com/media/uploads/ftf_3_cJ0V7TF.png",
"https://restdj.herokuapp.com/media/uploads/ftf_3.jpg"
]
- [Django]-Programmatically saving image to Django ImageField
- [Django]-How do I restrict foreign keys choices to related objects only in django
- [Django]-With DEBUG=False, how can I log django exceptions to a log file