PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Django get_or_create ne parvient pas à définir le champ lorsqu'il est utilisé avec iexact

Ce que vous voyez est le comportement correct.

get_or_create est un raccourci pour 'obtenir et renvoyer l'objet correspondant à kwargs , s'il n'existe pas, créez-le en utilisant defaults '. Votre recherche recherche un objet où name est une correspondance insensible à la casse pour 'cedar' . Cet objet existe, il est donc renvoyé. Rien de plus, rien de moins.

Maintenant, s'il n'y avait pas de correspondance, Stéphane a raison, et vous auriez besoin de spécifier name dans les defaults paramètre. Toutes les recherches contenant le séparateur de recherche __ sont supprimés des paramètres passés à create() .