gpt4 book ai didi

python - DRF 不适用于鹡鸰

转载 作者:行者123 更新时间:2023-11-30 22:49:33 24 4
gpt4 key购买 nike

我使用 DRF 作为 Rest api,使用 puput 作为博客,这是构建在 wagtail 之上的。在使用 puput 之前,我的 REST API 曾经可以工作,但现在不行了。例如,当我尝试打开 url http://localhost:8000/rest-api/ui/tab/ 我收到以下错误

Page not Found 404 error Raised by: wagtail.wagtailcore.views.serve

settings.py

DJANGO_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
]

THIRD_PARTY_APPS = [
# rest framework
'rest_framework',

# third party apps
'allauth',
'allauth.account',
'allauth.socialaccount',
'ckeditor',
]

MACHINA_APPS = [
'mptt',
'haystack',
'widget_tweaks',
'django_markdown',
]

LOCAL_APPS = [
'ui_mgmt', # UI manager - tabs, cards etc
'faq', # faq
]

PUPUT_APPS = [
'wagtail.wagtailcore',
'wagtail.wagtailadmin',
'wagtail.wagtaildocs',
'wagtail.wagtailsnippets',
'wagtail.wagtailusers',
'wagtail.wagtailimages',
'wagtail.wagtailembeds',
'wagtail.wagtailsearch',
'wagtail.wagtailsites',
'wagtail.wagtailredirects',
'wagtail.wagtailforms',
'wagtail.contrib.wagtailsitemaps',
'wagtail.contrib.wagtailroutablepage',
'compressor',
'taggit',
'modelcluster',
'puput',
]

INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + MACHINA_APPS + LOCAL_APPS + get_machina_apps() + PUPUT_APPS

urls.py

from ui_mgmt import urls as ui_mgmt_urls
urlpatterns = [
url(r'^accounts/', include(allauth_urls)),
url(r'^admin/', admin.site.urls),
url(r'^forum/', include(board.urls)),
url(r'', include('puput.urls')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^rest-api/', include(ui_mgmt_urls)),
]

ui_mgmt/urls.py

url(r'^ui/tabs/$', tab_list, name='tab_list'),

ui_mgmt/views.py

@api_view(['GET','POST'])
def tab_list(request, format=None):
if not request.user.is_authenticated():
return Response(status=status.HTTP_401_UNAUTHORIZED)

user = request.user
if request.method == 'GET':
tabs = Tab.objects.filter(belongsTo=user)
serialized_data = ExtendedTabSerializer(tabs, many=True)
return Response(serialized_data.data)

elif request.method == 'POST':
serialized_data = TabSerializer(data=request.data)
if serialized_data.is_valid():
serialized_data.save(belongsTo=user)
newTab = ExtendedTabSerializer(Tab.objects.get(id=serialized_data.data['id']))
return Response(newTab.data,status=status.HTTP_201_CREATED)

return Response(serialized_data.errors,status=status.HTTP_400_BAD_REQUEST)

为什么我的 DRF 不起作用?我每次调用 REST API 都会遇到同样的错误。

最佳答案

更改 url 模式的顺序.. puput 应该(可能)最后一个元素

urlpatterns = [
url(r'^accounts/', include(allauth_urls)),
url(r'^admin/', admin.site.urls),
url(r'^forum/', include(board.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^rest-api/', include(ui_mgmt_urls)),
url(r'', include('puput.urls')), # it will match the rest of patterns
]

希望这有帮助

关于python - DRF 不适用于鹡鸰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39698187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com