Je me demande comment je peux faire fonctionner mongoengine et djangoRESTframework les uns avec les autres. À l'heure actuelle, mon modèle estObtenir le cadre de repos mongoengine et django pour jouer sympa
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)
et j'ai le sérialiseur défini comme
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)
Mais je reçois l'erreur
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)
qui donne le retraçage suivant
response = callback(request, *callback_args, **callback_kwargs)
Il s'est avéré que mon problème était que je n'avais pas le fichier .as_view() dans mon fichier urls.py. Ce qui est bizarre, c'est que je n'en ai pas toujours eu besoin pour les vues en utilisant restlib2. – user1876508
Il semble que les classes restlib2 'Resource' soient de simples vues appelables, ie' Resource() 'appelle simplement' Resource.dispatch() 'alors que Django REST Frameworks utilise les vues basées sur les classes de Django (http://django-rest-framework.org /api-guide/views.html et https://docs.djangoproject.com/en/dev/topics/class-based-views/) qui nécessitent l'utilisation de 'as_view()'. –