Django
Tekenreeksen aan tekenreeksen koppelen met HStoreField - een specifiek PostgreSQL-veld
Zoeken…
Syntaxis
- FooModel.objects.filter (field_name__key_name = 'value to query')
HStoreField instellen
Eerst moeten we wat instellingen doen om HStoreField
werken.
- zorg ervoor dat
django.contrib.postgres
zich in uw `INSTALLED_APPS bevindt - Voeg
HStoreExtension
aan uw migraties. Vergeet niet omHStoreExtension
vóór elke migratie vanCreateModel
ofAddField
.
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 eerstHStoreField
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