2016-06-06 16 views
0

어떤 형태의 cleaned_data을 직렬화하는 방법을 알 수 없습니다. 문제는 아마도이 cleaned_datamodel objects이 포함되어 있다는 것입니다. 나는이 문제를 만지는 것을 찾지 못했기 때문에 여기서 물었다.Django에서 dict를 직렬화하는 방법은 무엇입니까?

예외 값 :
'DICT'개체가 어떤 속성 '_meta'

몇 가지 간단한 방법 또는 장고 내장 함수가 있습니까이 없다?

내 cleaned_data :

{'notes': u'dsads', 'language_from': <Language: Slovak>, 'file': None, 'short_description': u'dsadsad', 'text_to_translate': u'dsads', 'delivery_date': datetime.date(1930, 1, 1)} 

이것은 formset cleaned_data 경우 : cleaned_data 내부 models이 있기 때문에

[{'language': <Language: Magyar>, 'level': <Level: Standard level>}, 
{'language': <Language: Russian>, 'level': <Level: Standard level>}, {}, {}, {}] 

serializer.serialize(cleaned_data)가 작동하지 않습니다.

유일한 방법은 모든 개체를 기본 키로 변경 한 다음 deserialize 한 다음 데이터베이스에서 가져 오는 것입니다.

다른보기로 보내기 때문에 cleaned_data를 직렬화하려고합니다.

+0

원하는 결과는 무엇입니까? 예 : 직렬화 된 데이터를 이상적으로 보이게하려면 어떻게 하시겠습니까? "다른 시각으로 보내"는 것은 무엇을 의미합니까? 문제는 거꾸로 있습니다. 모델 인스턴스는 문제가 아니므로 폼에서 가져온 객체가 아직 데이터베이스에 저장되지 않았으므로 모델 인스턴스가 아니라 dict입니다. 'serialize.serialize'는 dicts가 아닌 querysets 또는 object 인스턴스에 적용됩니다. 따라서 오류 메시지가 발생합니다. –

답변

0

Django이 방법은 model_to_dict을 사용하는 것입니다. 이 모델 인스턴스를 사전으로 직렬화합니다. 각 모델 인스턴스에서 각각 호출하십시오. cleanded_data

from django.forms.models import model_to_dict 

model_to_dict(model_instance) 
관련 문제