Django
Zuordnen von Zeichenfolgen zu Zeichenfolgen mit HStoreField - einem PostgreSQL-spezifischen Feld
Suche…
Syntax
- FooModel.objects.filter (Feldname_Schlüsselname = 'Wert für Abfrage')
Einrichten von HStoreField
Zuerst müssen wir einige Einstellungen HStoreField
, damit HStoreField
funktioniert.
-
django.contrib.postgres
Sie sicher, dass sichdjango.contrib.postgres
in Ihrem `INSTALLED_APPS befindet - Fügen
HStoreExtension
den MigrationenHStoreExtension
. Denken Sie daran,HStoreExtension
vor allenCreateModel
oderAddField
Migrationen zu setzen.
from django.contrib.postgres.operations import HStoreExtension
from django.db import migrations
class FooMigration(migrations.Migration):
# put your other migration stuff here
operations = [
HStoreExtension(),
...
]
Hinzufügen von HStoreField zu Ihrem Modell
->
Hinweis:HStoreField
Sie sicher, dass Sie zuerstHStoreField
einrichten, bevor Sie mit diesem BeispielHStoreField
. (über)
Für die Initialisierung eines HStoreField
sind keine Parameter erforderlich.
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()
Erstellen einer neuen Modellinstanz
Übergeben Sie ein systemeigenes Python-Wörterbuch, das Zeichenfolgen zum 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',
})
Key Lookups durchführen
Catalog.objects.filter(titles__Pro_Git='Scott Chacon and Ben Straub')
Verwendung enthält
field_name__contains
ein dict
Objekt als Schlüsselwortargument an field_name__contains
.
Catalog.objects.filter(titles__contains={
'Pro Git': 'Scott Chacon and Ben Straub'})
Entspricht dem SQL-Operator `@>`.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow