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.

  1. django.contrib.postgres Sie sicher, dass sich django.contrib.postgres in Ihrem `INSTALLED_APPS befindet
  2. Fügen HStoreExtension den Migrationen HStoreExtension . Denken Sie daran, HStoreExtension vor allen CreateModel oder AddField 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 zuerst HStoreField einrichten, bevor Sie mit diesem Beispiel HStoreField . (ü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