Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion django_pandas/tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def __unicode__(self):

class TradeLog(models.Model):
trader = models.ForeignKey(Trader)
symbol = models.ForeignKey(Security)
symbol = models.ForeignKey(Security, null=True)
log_datetime = models.DateTimeField()
price = models.FloatField()
volume = models.IntegerField()
Expand Down
4 changes: 2 additions & 2 deletions django_pandas/tests/test_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ def setUp(self):
fish = Trader.objects.create(name="Fred Fish")
abc = Security.objects.create(symbol='ABC', isin='999901')
zyz = Security.objects.create(symbol='ZYZ', isin='999907')
TradeLog.objects.create(trader=bob, symbol=abc,
TradeLog.objects.create(trader=bob, symbol=None,
log_datetime='2013-01-01T09:30:00',
price=30, volume=300)
TradeLog.objects.create(trader=bob, symbol=abc,
TradeLog.objects.create(trader=bob, symbol=None,
log_datetime='2013-01-01T10:00:00',
price=30, volume=300)
TradeLog.objects.create(trader=bob, symbol=abc,
Expand Down
5 changes: 3 additions & 2 deletions django_pandas/utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# coding: utf-8

from math import isnan
from django.core.cache import cache
from django.utils.encoding import force_text

Expand Down Expand Up @@ -31,7 +32,7 @@ def replace_pk(model):
base_cache_key = get_base_cache_key(model)

def inner(pk_list):
cache_keys = [None if pk is None else base_cache_key % pk
cache_keys = [None if isnan(pk) else base_cache_key % pk
for pk in pk_list]
out_dict = cache.get_many(frozenset(cache_keys))
try:
Expand All @@ -41,7 +42,7 @@ def inner(pk_list):
out_dict = {
base_cache_key % obj.pk: force_text(obj)
for obj in model.objects.filter(pk__in={pk for pk in pk_list
if pk is not None})}
if not isnan(pk)})}
cache.set_many(out_dict)
out_list = list(map(out_dict.get, cache_keys))
return out_list
Expand Down