Last active
August 29, 2015 14:07
-
-
Save jtiai/a96f94ae3fe4fe70674b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MyManager(models.Manager): | |
use_for_related_fields = True | |
def get_query_set(self): | |
return super(MyManager, self).get_query_set().filter(is_deleted=False) | |
class MyModel(gis_models.Model): | |
is_deleted = models.BooleanField(default=False, db_index=True) | |
objects = FlatManager() | |
all_objects = models.Manager() | |
class MyModelProxy(MyModel): | |
objects = models.Manager() | |
class Meta: | |
proxy = True |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# i'm using sql alchemy here, to get objects from another database | |
for obj in self.session.query(ModelLegacy).filter(ModelLegacy.acc_id == acc.id): | |
try: | |
new_object = MyModelProxy.all_objects.get(created=obj.date_added) | |
except MyModelProxy.DoesNotExist: | |
new_object = MyModelProxy(created=obj.date_added) | |
new_object.is_deleted = obj.deleted | |
new_object.user = new_user | |
new_object.save() | |
# now here, the second time i run this script, that happens: | |
django.db.utils.IntegrityError: duplicate key value violates unique constraint "myapp_mymodel_pkey" | |
DETAIL: Key (id)=(5453) already exists. | |
# if i follow it with debugging: | |
-> new_object.save() | |
(Pdb) new_object | |
<MyModel: asdf> | |
(Pdb) new_object.pk | |
5453 | |
(Pdb) new_object.save() | |
*** DoesNotExist: Flat matching query does not exist. | |
# if i follow this further: | |
https://github.com/django/django/blob/master/django/db/models/base.py#L715 | |
(Pdb) cls._base_manager.count() | |
608 | |
(Pdb) cls.all_objects.count() | |
632 | |
# so i think, djano uses 'objects' manager as _base_manager in the background | |
# and can't find my is_deleted model |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment