django-pandas
django-pandas copied to clipboard
Fix: Ensure Cache Key pk is Converted to INT to Prevent Dataframe Series Null Issues
-> Ensure that the cache key pk (if used) is always converted to an INT format.
This addresses a bug that occurs when a queryset is loaded into a dataframe. Specifically, if the queryset includes a foreign key with nullable fields and a mix of instances with null and non-null related fields, pandas assigns the dtype of the primary key (pk) column as object. Consequently, pk values are automatically converted to floats because a pandas integer Series cannot contain None.
To avoid this, we must explicitly reconvert the pk column to INT before using it as a cache key.
Without this step, as of now, the dataframe ends up with None for every row in such cases.
[Using pandas 2.2.2]