Opened 8 years ago
Last modified 8 years ago
#28210 closed Bug
`<orm_object>._state.adding` behaviour and model inheritance — at Initial Version
Description ¶
Let's say we have the following models:
class User(models.Model): email = models.CharField(max_length=255, unique=True) password = models.CharField(max_length=32, widget=forms.PasswordInput) class Admin(User): pass class ThirdPartyUser(User): pass
Steps to reproduce:
admin = Admin.objects.create(email='admin@admin.com')
This will create an Admin instance and User instance, with admin.user_ptr._state.adding == True
ThirdPartyUser.objects.create(user_ptr = admin.user_ptr)
This will raise the following error {'email': ['User with this Email address already exists.'], 'id': ['User with this ID already exists.'] }
When the admin is created, the admin.user_ptr._state.adding
is True, but admin._state.adding is False (as it is already created).
If we set admin.user_ptr._state.adding = False
, step 2 is passing without errors.