जब मैं एंडपॉइंट्स का उपयोग करता हूं तो मुझे protorpc
से कुछ अजीब त्रुटियां मिल रही हैं। इस कोड में:एंडपॉइंट्स एपीआई - प्रोटॉर्प सत्यापन त्रुटि
class Application(EndpointsModel):
_message_fields_schema = ('id', 'name')
created = ndb.DateTimeProperty(auto_now_add=True)
name = ndb.StringProperty()
roles = ndb.IntegerProperty(repeated=True)
updated = ndb.DateTimeProperty(auto_now=True)
owner = ndb.KeyProperty(kind='User')
@API.api_class(resource_name="application")
class ApplicationApi(protorpc.remote.Service):
@Application.method(http_method="GET",
request_fields=('id',),
name="get",
path="applications/{id}")
def ApplicationGet(self, instance):
if not instance.from_datastore:
raise endpoints.NotFoundException("Application not found.")
return instance
@Application.query_method(http_method="GET",
query_fields=('limit', 'order', 'pageToken'),
name="list",
path="applications")
def ApplicationList(self, query):
return query
जब मैं फोन के रूप में इस application.get()
त्रुटि है: (full trace here):
TypeError: Can only copy from entities of the exact type Application. Received an instance of Application.
और बुला इस प्रकार application.list()
त्रुटि है के लिए: (full trace here):
ValidationError: Expected type
<class '.Application'>
for field items, found<Application name: u'test'>
(type<class '.Application'>
)
इसका कारण क्या हो सकता है? मेरे अन्य मॉडल बहुत अधिक कोड (बस अलग-अलग गुण) के साथ ठीक काम करते हैं।
उन निशानों की तरह आप वर्ग (प्रकार) ऑब्जेक्ट 'एप्लिकेशन' के बजाय' एप्लिकेशन' के उदाहरण का उपयोग कर रहे हैं। क्या आप वाकई अपने कोड में कहीं भी 'एप्लिकेशन()' का उपयोग नहीं कर रहे हैं? –
बस दोबारा जांच की गई, मैं इसे कहीं भी उपयोग नहीं कर रहा हूं - सभी प्रासंगिक कोड प्रश्न में हैं। मैं एक वर्ग 'ApplicationApi (BaseRemoteService)' का विस्तार कर रहा हूँ, लेकिन आवेदन का कोई उल्लेख नहीं है, और वहाँ एक पोस्ट api विधि है (जो काम करता है ...), लेकिन मैं सब कि मैं अभी भी बस के साथ एक ही त्रुटियों को दूर हो रही है, भले ही ओपी से कोड। – Sasxa
यह अंधेरे में एक शॉट है, लेकिन 'EndpointsModel' उपवर्गीकरण करने से पहले,' Application' उपवर्ग 'ndb.Model' किया था? सभी 'एप्लिकेशन' इकाइयों के माध्यम से लूपिंग करने और उन पर फिर से 'डाल' करने का प्रयास करें। मैं सोच रहा हूं कि जो कुंजी आप पास करते हैं वह इकाई को लाती है लेकिन विरासत श्रृंखला के बारे में कुछ '__class__' फ़ील्ड मेल नहीं खाता है। –