PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django get_or_create kann das Feld nicht festlegen, wenn es mit iexact verwendet wird

Was Sie sehen, ist das richtige Verhalten.

get_or_create ist eine Kurzform für „das Objekt abrufen und zurückgeben, das zu kwargs passt , wenn es nicht existiert, erstellen Sie es mit defaults '. Ihre Suche sucht nach einem Objekt, bei dem name ist eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung mit 'cedar' . Dieses Objekt existiert, also wird es zurückgegeben. Nicht mehr und nicht weniger.

Wenn es jetzt keine Übereinstimmung gibt, hat Stéphane recht, und Sie müssten name angeben in den defaults Parameter. Alle Suchen, die das Suchtrennzeichen __ enthalten werden von den an create() übergebenen Parametern entfernt .