私はこの例を次のように適応しようとしています。 http://www.django-rest-framework.org/ Django 2.0に変更しましたが、私はエラーに遭遇しています。
まず、私は django-admin startproject rest_example
。私は追加しました "rest_framework"
〜に INSTALLED_APPS
リスト settings.py
そして、 REST_FRAMEWORK
変数:
REST_FRAMEWORK = {
# Use Django"s standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
"DEFAULT_PERMISSION_CLASSES": [
"rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly"
]
}
ここに私の適応です urls.py
:
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ("url", "username", "email", "is_staff")
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
router = routers.DefaultRouter()
router.register(r"users", UserViewSet)
urlpatterns = [
path("admin/", admin.site.urls),
path("api-auth/", include("rest_framework.urls"))
]
問題は、私が python manage.py runserver
に移動して localhost:8000
私は404:
同様に、私が localhost:8000/api-auth/
、私は得る
なぜこれは機能しないのですか?
回答:
回答№1は1私はこの問題を、 urlpatterns
に
urlpatterns = [
path("admin/", admin.site.urls),
]
urlpatterns += router.urls
また走っている python manage.py migrate
サーバーを実行する前に今私が行ったら localhost:8000/users/
私はユーザーリストビューを取得します:
どこで走ったの? python manage.py createsuperuser
一度(ダミー)ユーザーを作成します。
回答№2の場合は0
または、次の方法でURLを独自のサブパスに追加することもできます。
urlpatterns = [
path("admin/", admin.site.urls),
path("api/", include(router.urls)),
]
しかし、そうでなければ、データベースのセットアップとその中のユーザレコードを持つことは、あなたの例が期待どおりに機能するためには絶対必要です。