Kaydet (Commit) 60156750 authored tarafından Daniel Miller's avatar Daniel Miller Kaydeden (comit) Tim Graham

Fixed #29330 -- Fixed crash when pickling BaseExpression.

Regression in cfff2af0.
üst 1d5d4867
......@@ -153,6 +153,11 @@ class BaseExpression:
if output_field is not None:
self.output_field = output_field
def __getstate__(self):
state = self.__dict__.copy()
state.pop('convert_value', None)
return state
def get_db_converters(self, connection):
return (
[]
......
import datetime
import pickle
import unittest
import uuid
from copy import deepcopy
......@@ -585,6 +586,11 @@ class BasicExpressionsTests(TestCase):
outer = Company.objects.filter(pk__in=Subquery(inner.values('pk')))
self.assertEqual(outer.get().name, 'Test GmbH')
def test_pickle_expression(self):
expr = Value(1, output_field=models.IntegerField())
expr.convert_value # populate cached property
self.assertEqual(pickle.loads(pickle.dumps(expr)), expr)
class IterableLookupInnerExpressionsTests(TestCase):
@classmethod
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment