Opened 5 weeks ago
Last modified 4 weeks ago
#36550 assigned Bug
AssertionError raised when bulk creation model with composite primary key — at Initial Version
Reported by: | Will-Ruddick | Owned by: | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Simon Charette | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I have a model that looks something like this
class CompositeModel(models.Model): pk = models.CompositePrimaryKey("other_model", "the_time", "created_at") other_model = models.ForeignKey("test.OtherModel", on_delete=models.CASCADE) the_time = models.DateTimeField() created_at = models.DateTimeField(auto_now_add=True)
And when I try and bulk create it in the code I get the following exception.
CompositeModel.objects.bulk_create(new_items) File "django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "django/db/models/query.py", line 836, in bulk_create assert len(returned_columns) == len(objs_without_pk) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError
Where returned_columns
is an empty list and objs_without_pk
is a list of the objects I'm trying to create.
If I use ignore_conflicts=True
then everything works fine and the objects are created properly in the DB. I think this is a bug, but it could be user error.
This is happening on version 5.2.5
Note:
See TracTickets
for help on using tickets.