Ich frage mich, wie ich Mongoengine und DjangoRESTframework miteinander arbeiten können. Derzeit mein Modell istErhalten Mongoengine und Django Rest-Framework, um nett zu spielen
from mongoengine import *
import datetime
class Blog(Document):
post_id = IntField(unique=True)
title = StringField(max_length=144, required=True)
date_created = DateTimeField(default=datetime.datetime.now)
body = StringField(required=True)
und ich habe die Serializer definiert als
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import *
class BlogList(APIView):
"""
Lists all blog posts, or creates a new post
"""
def get(self, request, format=None):
posts = Blog.objects.to_json()
return Response(posts)
Aber erhalte ich den Fehler
TypeError at /blog/
__init__() takes exactly 1 argument (2 given)
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/
Django Version: 1.5.1
Exception Type: TypeError
Exception Value:
__init__() takes exactly 1 argument (2 given)
, die folgenden Zurückverfolgungs
response = callback(request, *callback_args, **callback_kwargs)
gibt
Es stellte sich heraus, mein Problem war, dass ich nicht die .as_view() in meiner Datei urls.py hatte. Was ist seltsam ist, dass ich es nicht immer für Ansichten mit Restlib2 benötigt. – user1876508
Es scheint, dass restlib2 'Resource' Klassen einfache alte aufrufbare Views sind, dh' Resource() 'ruft nur 'Resource.dispatch()' auf, während Django REST Frameworks Djangos Class Based Views verwendet (http://django-rest-framework.org) /api-guide/views.html und https://docs.djangoproject.com/en/dev/topics/class-based-views/), die die Verwendung von 'as_view()' erfordern. –