Django
Mapowanie ciągów do ciągów za pomocą HStoreField - pola specyficznego dla PostgreSQL
Szukaj…
Składnia
- FooModel.objects.filter (nazwa_pola__nazwa_klucza = „wartość do zapytania”)
Konfigurowanie HStoreField
Najpierw musimy wykonać konfigurację, aby HStoreField
działał.
- upewnij się, że
django.contrib.postgres
znajduje się w twoim `INSTALLED_APPS - Dodaj
HStoreExtension
do swoich migracji. Pamiętaj, aby umieścićHStoreExtension
przed wszelkimiCreateModel
lubAddField
.
from django.contrib.postgres.operations import HStoreExtension
from django.db import migrations
class FooMigration(migrations.Migration):
# put your other migration stuff here
operations = [
HStoreExtension(),
...
]
Dodanie HStoreField do swojego modelu
->
Uwaga: upewnij się, że najpierw skonfigurowałeśHStoreField
zanim przejdziesz do tego przykładu. (powyżej)
Do zainicjowania HStoreField
nie są wymagane żadne parametry.
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()
Tworzenie nowej instancji modelu
Przekaż natywne ciągi mapowania słownika python do ciągów, aby 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',
})
Wykonywanie kluczowych wyszukiwań
Catalog.objects.filter(titles__Pro_Git='Scott Chacon and Ben Straub')
Korzystanie zawiera
Przekaż obiekt dict
do field_name__contains
jako argument słowa kluczowego.
Catalog.objects.filter(titles__contains={
'Pro Git': 'Scott Chacon and Ben Straub'})
Odpowiednik operatora SQL `@>`.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow