﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
31899	unexpected behaviour of get_or_create when one of the kwargs is None	MathiasWedeken	nobody	"Assuming a db-model like this: 


{{{
class SomeModel(models.Model): 
    field_1 = models.CharField(max_length=100)
    field_2 = models.JSONField()

}}}

In versions prior to 3.0, get_or_create would expect like this: 

{{{
#first time
SomeModel.objects.get_or_create(field_1=""bla"", field_2=None)
--> (<SomeModel: bla>, True)

#second_time
SomeModel.objects.get_or_create(field_1=""bla"", field_2=None)
--> (<SomeModel: bla>, False)
}}}

And of course, querying for all objects would give this: 
{{{
SomeModel.objects.filter(field_1=""bla"")
--> <QuerySet [<SomeModel: bla>]> 
}}}

In version 3.0.9, however, this happens: 
{{{
#second_time in django 3.0.9
SomeModel.objects.get_or_create(field_1=""bla"", field_2=None)
--> (<SomeModel: bla>, True)
}}}

and querying for all objects returns:  

{{{
SomeModel.objects.filter(field_1=""bla"")
--> <QuerySet [<SomeModel: bla>,<SomeModel: bla>]> 
}}}"	Bug	closed	Database layer (models, ORM)	3.0	Normal	duplicate			Unreviewed	0	0	0	0	0	0
