I am very confused right now. I ran a script in Django to create a fake database, repeating the same code over and over. I have already created more than 2.5k objects when I get the following error:
ProgrammingError: autocommit cannot be used inside a transaction
I looked through it and got a big code, which seems to be fixed, but it was for previous versions, I use Django 1.6. Here is the full trace:
--------------------------------------------------------------------------- ProgrammingError Traceback (most recent call last) <ipython-input-31-0597bce30f92> in <module>() ----> 1 make_listeners() <ipython-input-29-5697f122e144> in make_listeners() 28 seed = random.randint(0,len(user_ids_copy)-1) 29 requested_user = user_ids_copy.pop(seed) ---> 30 user.functions.listen_to(requested_user) 31 print i, user.pk, number_seed, original_seed 32 number_seed -= 1 .../models.py in listen_to(self, user_id) 715 except User.DoesNotExist: 716 return 'User DoesNotExist' --> 717 request = ListenerRequest.objects.get_or_create(user=requesting, user_requested=requester, is_active=True) 718 if not request[1]: 719 if request.is_accepted: /Library/Python/2.7/site-packages/Django-1.6-py2.7.egg/django/db/models/manager.pyc in get_or_create(self, **kwargs) 152 153 def get_or_create(self, **kwargs): --> 154 return self.get_queryset().get_or_create(**kwargs) 155 156 def create(self, **kwargs): /Library/Python/2.7/site-packages/Django-1.6-py2.7.egg/django/db/models/query.pyc in get_or_create(self, **kwargs) 378 obj = self.model(**params) 379 with transaction.atomic(using=self.db): --> 380 obj.save(force_insert=True, using=self.db) 381 return obj, True 382 except DatabaseError: /Library/Python/2.7/site-packages/Django-1.6-py2.7.egg/django/db/transaction.pyc in __exit__(self, exc_type, exc_value, traceback) 328 connection.autocommit = True 329 else: --> 330 connection.set_autocommit(True) 331
Why am I getting this error if I did not have this problem for the first 2500 objects?
Model:
upon request, here is the model for ListenerRequest , as this causes an error:
class ListenerRequest(models.Model): listener_relationship_id = models.AutoField(primary_key=True)
python django error-handling
Ryan saxe
source share