Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7k
Closed
Labels
Milestone
Description
(Not a great title — I hope the description will clarify.)
Steps to reproduce
First:pip install django-phonenumber-field
With the following model and serializer:
fromdjango.db.modelsimportModelfromphonenumber_field.modelfieldsimportPhoneNumberFieldfromrest_framework.serializersimportModelSerializerclassPhoneModel(Model):number=PhoneNumberField()classPhoneSerializer(ModelSerializer):classMeta:model=PhoneModelfields= ['number']
Expected behavior
This test used to pass (until version 3.3.3):
deftest_phone_serializer():phone=models.PhoneModel(number='+33610293847')data=models.PhoneSerializer(phone).dataassertdata['number']=='+33610293847'
Actual behavior
The test fails (since version 3.4) with:
def test_phone_serializer(): phone = models.PhoneModel(number='+33610293847') data = models.PhoneSerializer(phone).data> assert data['number'] == '+33610293847'E assert None == '+33610293847'Analysis
I bisected this regression to9c996d7.
As far as I can tell, DRF used to get the string representation of the field and no longer does.
(Pdb) phone.numberPhoneNumber(country_code=33, national_number=610293847, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=1, preferred_domestic_carrier_code='')(Pdb) str(phone.number)'+33610293847'