Django
Associazione di stringhe alle stringhe con HStoreField: un campo specifico PostgreSQL
Ricerca…
Sintassi
- FooModel.objects.filter (field_name__key_name = 'valore da interrogare')
Impostazione di HStoreField
Innanzitutto, dovremo eseguire alcune impostazioni per far funzionare HStoreField
.
- assicurati che
django.contrib.postgres
sia nel tuo `INSTALLED_APPS - Aggiungi
HStoreExtension
alle tue migrazioni. Ricordarsi di inserireHStoreExtension
prima di qualsiasi migrazione diCreateModel
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(),
...
]
Aggiunta di HStoreField al modello
->
Nota: assicurati di configurareHStoreField
prima di continuare con questo esempio. (sopra)
Non sono richiesti parametri per inizializzare 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()
Creazione di una nuova istanza di modello
Passa un dizionario Python nativo che associa stringhe a stringhe per 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',
})
Esecuzione di ricerche chiave
Catalog.objects.filter(titles__Pro_Git='Scott Chacon and Ben Straub')
L'utilizzo contiene
Passa un oggetto dict
a field_name__contains
come argomento della parola chiave.
Catalog.objects.filter(titles__contains={
'Pro Git': 'Scott Chacon and Ben Straub'})
Equivale all'operatore SQL `@>`.
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow