Для тех, кто столкнется с этим в будущем, я смог сохранить файлы cookie в базе данных, используя cookielib (часть urllib) и создав собственный cookie-файл, который выгружает и загружает файлы cookie в виде строк.которые могут быть сохранены в БД:
class StringCookieJar(cookielib.CookieJar):
def __init__(self, cookie_string="", policy=None):
cookielib.CookieJar.__init__(self, policy)
if cookie_string:
self._cookies = pickle.loads(cookie_string)
def dump(self):
return pickle.dumps(self._cookies)
При создании экземпляра моего объекта подключения я установил средство открытия urllib с моей собственной cookielib:
self.cookiejar = StringCookieJar(cookie_string=str(self.account.cookies))
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookiejar))
где self.account.cookies - это поле в базе данных, которое я использую для хранения моей строки cookie:
cookies = models.CharField(max_length=2000, blank=True)