Zoeken…


Syntaxis

  • FooModel.objects.filter (field_name__key_name = 'value to query')

HStoreField instellen

Eerst moeten we wat instellingen doen om HStoreField werken.

  1. zorg ervoor dat django.contrib.postgres zich in uw `INSTALLED_APPS bevindt
  2. Voeg HStoreExtension aan uw migraties. Vergeet niet om HStoreExtension vóór elke migratie van CreateModel of 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(),
        ...
    ]

HStoreField toevoegen aan uw model

-> Opmerking: zorg ervoor dat u eerst HStoreField voordat u verder gaat met dit voorbeeld. (bovenstaand)

Er zijn geen parameters vereist voor het initialiseren van een 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()

Een nieuwe modelinstantie maken

Geef een native python-woordenboek door dat tekenreeksen toewijst aan tekenreeksen om te 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 uitvoeren

Catalog.objects.filter(titles__Pro_Git='Scott Chacon and Ben Straub')

Gebruik bevat

Geef een dict object door aan field_name__contains als trefwoordargument.

Catalog.objects.filter(titles__contains={
        'Pro Git': 'Scott Chacon and Ben Straub'})
Gelijk aan de SQL-operator `@>`.

Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow