Opened 3 months ago
Last modified 6 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: | yes |
| 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.