장고와 장고 REST 프레임 워크를 MongoEngine과 함께 사용하려고하는데 저에게 효과적이지 않습니다. 나는 어디서 일이 잘못 될지 모른다. 아마 누군가 나를 도와 줄 수있을 것이다.Django REST 프레임 워크와 MongoEngine의 AttributeError
models.py 직렬화 대화 형 콘솔을 사용하여 작동하는 경우
from rest_framework import serializers
from mongoengine import *
class LadySerializer(serializers.Serializer):
firstname = serializers.CharField(max_length=50)
lastname = serializers.CharField(max_length=50)
def restore_object(self,attrs,instance=None):
if instance:
instance.firstname = attrs.get('firstname', instance.firstname)
instance.lastname = attrs.get('lastname', instance.lastname)
return instance
return Lady(**attrs)
가 지금은 테스트
from mongoengine import *
class Lady(Document):
firstname = StringField()
lastname = StringField()
serializers.py : 여기에 코드입니다. 다음 명령을 실행합니다.
from core.models import *
from core.serializers import *
tiger = Lady(firstname='Tiger', lastname="Lily")
serial = LadySerializer(tiger)
serial.data
내가 얻을 수 있습니다 : 지금
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/evermean/Code/django/env/pourl/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 499, in data
self._data = [self.to_native(item) for item in obj]
File "/home/evermean/Code/django/env/pourl/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 306, in to_native
value = field.field_to_native(obj, field_name)
File "/home/evermean/Code/django/env/pourl/local/lib/python2.7/site-packages/rest_framework/fields.py", line 164, in field_to_native
value = get_component(value, component)
File "/home/evermean/Code/django/env/pourl/local/lib/python2.7/site-packages/rest_framework/fields.py", line 56, in get_component
val = getattr(obj, attr_name)
AttributeError: 'str' object has no attribute 'firstname'
는 정말 레이디 클래스의 FIRSTNAME 속성이 있기 때문에 이런 일이 왜 몰라? 내가 여기서 무엇을 놓치고 있니?
감사 ...
어떻게 당신이 당신의 코드에서 시리얼을 요구하고있다? – karthikr
serial = LadySerializer (tiger) 그리고 나서 serial.data ... – evermean