PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Django get_or_create non riesce a impostare il campo quando viene utilizzato con iexact

Quello che vedi è il comportamento corretto.

get_or_create è un'abbreviazione per 'ottenere e restituire l'oggetto corrispondente a kwargs , se non esiste, crealo utilizzando defaults '. La tua ricerca sta cercando un oggetto in cui name è una corrispondenza senza distinzione tra maiuscole e minuscole per 'cedar' . Quell'oggetto esiste, quindi viene restituito. Niente di più, niente di meno.

Ora, se non ci fosse corrispondenza, Stéphane ha ragione e dovresti specificare name nei defaults parametro. Tutte le ricerche contenenti il ​​separatore di ricerca __ vengono rimossi dai parametri passati a create() .