Django - serve () получил неожиданный аргумент ключевого слова 'documuent_root' - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь установить путь к файлу медиа / изображения для DRF, но он не работает, и я не могу понять, почему.

я получаю эту ошибку:

enter image description here

serve() got an unexpected keyword argument 'documuent_root'

Я на Mac Runing Django 1.11 DRF с Python 3.6.

Я переместил URL-адреса настроек на верхний уровень, объясняя, почему эта ссылка , поэтому я на шаг ближе, хотя до сих пор не могу понять, почему мои ссылки показывают 404, когда я нажимаю на них.

settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'src')

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

CORS_ORIGIN_WHITELIST = 'localhost:3000', #whitelists the localhost to run

views.py

from accounts.api.permissions import IsOwnerOrReadOnly
from rest_framework import generics, mixins, permissions, viewsets
from books.models import Books
from books.api.serializers import BooksSerializer


class BookViewSet(viewsets.ModelViewSet):
    permission_classes      = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]    # authentication_classes  = []
    serializer_class        = BooksSerializer  # necessary

    queryset                = Books.objects.all()
    lookup_field            = 'id'
    search_fields           = ('user__username', 'content', 'user__email')
    ordering_fields         = ('user__username', 'timestamp')

urls.py

from django.conf.urls import url, include
from django.contrib import admin
from . import views
from django.conf.urls.static import static
from django.conf import settings
from rest_framework import routers
from books.api.views import (
                BookViewSet)

router = routers.SimpleRouter()
router.register(r'books', BookViewSet) # --> http://127.0.0.1:8000/api/books/api/books/


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include(router.urls)),

  ] + static(settings.MEDIA_URL, documuent_root=settings.MEDIA_ROOT)

1 Ответ

0 голосов
/ 29 августа 2018

Это опечатка на самом деле. Вы использовали documuent_root, но это должно быть document_root.

Итак, измените на

urlpatterns = [
    .... other patters,
    ]+static(settings.MEDIA_URL, <b>document_root</b>=settings.MEDIA_ROOT)
...