Szukaj…


Składnia

  • FooModel.objects.filter (nazwa_pola__nazwa_klucza = „wartość do zapytania”)

Konfigurowanie HStoreField

Najpierw musimy wykonać konfigurację, aby HStoreField działał.

  1. upewnij się, że django.contrib.postgres znajduje się w twoim `INSTALLED_APPS
  2. Dodaj HStoreExtension do swoich migracji. Pamiętaj, aby umieścić HStoreExtension przed wszelkimi CreateModel lub AddField .
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