ImageField
이있는 모델을 직렬화하려고합니다. inbuilt serializer이 serialize하는 것처럼 보일 수 없습니다 및 따라서 사용자 지정 serializer 작성 생각. 장고에서 이미지를 serialize하고 장고의 JSON serializer와 함께 사용하는 방법을 말씀해 주시겠습니까?어떻게 장고에서 ImageField를 직렬화합니까?
감사
ImageField
이있는 모델을 직렬화하려고합니다. inbuilt serializer이 serialize하는 것처럼 보일 수 없습니다 및 따라서 사용자 지정 serializer 작성 생각. 장고에서 이미지를 serialize하고 장고의 JSON serializer와 함께 사용하는 방법을 말씀해 주시겠습니까?어떻게 장고에서 ImageField를 직렬화합니까?
감사
내에서 사용한다. 대신 이미지를 base643에 직렬화하는 대신 이미지의 경로를 반환합니다. 스 니펫은 다음과 같습니다.
def encode_datetime(obj):
"""
Extended encoder function that helps to serialize dates and images
"""
if isinstance(obj, datetime.date):
try:
return obj.strftime('%Y-%m-%d')
except ValueError, e:
return ''
if isinstance(obj, ImageFieldFile):
try:
return obj.path
except ValueError, e:
return ''
raise TypeError(repr(obj) + " is not JSON serializable")
이미지를 직렬화하기 위해서 base64 encoding을 시도 할 수는 내가 simplejson 인코더의 확장을 쓴 JSON
이미지이기 때문에 개체를 직렬화 할 수 없습니다. 경로의 문자열 표현을 직렬화해야합니다.
가장 쉬운 방법은 직렬화 할 항목이있을 때 str() 메서드를 호출하는 것입니다.
json.dumps(unicode(my_imagefield)) # py2
json.dumps(str(my_imagefield)) # py3
.
이 작품은 나를 위해! 정말 고맙습니다 – Genarito
해결책 주셔서 감사합니다. 나는 인정해야한다 -'ImageFieldFile'을 직렬화하지 말고 오히려 ... Django를 우습게 만든다. – yentsun