Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

277
Visualizações
¿Es posible almacenar una matriz en el modelo Django?

Me preguntaba si es posible almacenar una matriz en un modelo Django.

Estoy preguntando esto porque necesito almacenar una matriz de int (por ejemplo, [1,2,3]) en un campo y luego poder buscar una matriz específica y obtener una coincidencia con ella o por sus posibles combinaciones.

Estaba pensando en almacenar esas matrices como cadenas en CharField s y luego, cuando necesito buscar algo, concatenar los valores (obtenidos al filtrar otro modelo) con '[', ']' y ',' y luego usar un filtro de objetos con esa cadena generada. El problema es que tendré que generar cada combinación posible y luego filtrarlas una por una hasta que me salga una coincidencia, y creo que esto puede ser ineficiente.

Entonces, espero que me puedan dar otras ideas que podría probar.

No estoy pidiendo código, necesariamente, cualquier idea sobre cómo lograr esto será buena.

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Sí, puedes usarlo así:

 from django.contrib.postgres.fields import ArrayField class Board(models.Model): pieces = ArrayField(ArrayField(models.IntegerField()))

Sin embargo, solo puede estar disponible cuando se usa PostgreSQL para la base de datos.

over 4 years ago · Santiago Trujillo Relatório

0

Te daría dos consejos:

1) Use ArrayField si está usando PostgreSQL como su base de datos. Puede leer más sobre ArrayField aquí .

2) Codifique su matriz como JSON y guárdela como una cadena simple o usando un JSONField como se encuentra aquí .

Personalmente, preferiría la opción número 1, ya que es la forma más limpia y agradable, pero dependiendo de lo que realmente esté usando para almacenar sus datos, es posible que no esté disponible para usted.

over 4 years ago · Santiago Trujillo Relatório

0

Si no está utilizando Postgres, le recomiendo el validate_comma_separated_integer_list de lista de números enteros separados por comas de Django.

https://docs.djangoproject.com/en/dev/ref/validators/#django.core.validators.validate_comma_separated_integer_list

Lo usas como validador en un CharField() .

over 4 years ago · Santiago Trujillo Relatório

0

No sé por qué nadie lo ha sugerido, pero siempre puedes encurtir las cosas y poner el resultado en un campo binario.

Las ventajas de este método son que funcionará con casi cualquier base de datos, es eficiente y se puede aplicar a más que solo arreglos. La desventaja es que no puede hacer que la base de datos ejecute consultas en los datos encurtidos (no fácilmente, de todos modos).

over 4 years ago · Santiago Trujillo Relatório

0

puede almacenar un json y listo con subconjuntos de ese 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) }

back-end de Django:

 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)

y resultado en la API de back-end:

 { "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" ] } },

Yo lo llamo muy bien (muy bien). Observe que enviamos un JSON y tenemos una matriz en ese JSON

Kokos es el JSON completo desaprobado para djangoo:

 var myObj = { name: this.recipe.attachmentto.name, age: 31, city: "New York" }; let kokos = JSON.stringify(myObj);

formData.append('adjunto a', kokos)

Encima; nombre: this.recipe.attachmentto.name es una matriz

Aquí está la matriz: "nombre": [

 "https://restdj.herokuapp.com/media/uploads/ftf_3_cJ0V7TF.png", "https://restdj.herokuapp.com/media/uploads/ftf_3.jpg" ]
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda