Django
Mapeo de cadenas a cadenas con HStoreField - un campo específico de PostgreSQL
Buscar..
Sintaxis
- FooModel.objects.filter (field_name__key_name = 'valor a consultar')
Configurando HStoreField
Primero, tendremos que hacer alguna configuración para que HStoreField
funcione.
- asegúrese de que
django.contrib.postgres
esté en su `INSTALLED_APPS - Agregue
HStoreExtension
a sus migraciones. Recuerde ponerHStoreExtension
antes de cualquier migración deCreateModel
oAddField
.
from django.contrib.postgres.operations import HStoreExtension
from django.db import migrations
class FooMigration(migrations.Migration):
# put your other migration stuff here
operations = [
HStoreExtension(),
...
]
Agregando HStoreField a tu modelo
->
Nota: asegúrese de configurarHStoreField
primero antes de continuar con este ejemplo. (encima)
No se requieren parámetros para inicializar un HStoreField
.
from django.contrib.postgres.fields import HStoreField
from django.db import models
class Catalog(models.model):
name = models.CharField(max_length=200)
titles_to_authors = HStoreField()
Creando una nueva instancia de modelo
Pase un diccionario de python nativo asignando cadenas a cadenas para create()
.
Catalog.objects.create(name='Library of Congress', titles_to_authors={
'Using HStoreField with Django': 'CrazyPython and la communidad',
'Flabbergeists and thingamajigs': 'La Artista Fooista',
'Pro Git': 'Scott Chacon and Ben Straub',
})
Realizar búsquedas de claves
Catalog.objects.filter(titles__Pro_Git='Scott Chacon and Ben Straub')
Usando contiene
Pase un objeto dict
a field_name__contains
como un argumento de palabra clave.
Catalog.objects.filter(titles__contains={
'Pro Git': 'Scott Chacon and Ben Straub'})
Equivalente al operador de SQL `@>`.
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow