首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-Filer规范URLS不能正常工作(页未找到)

Django-Filer规范URLS不能正常工作(页未找到)
EN

Stack Overflow用户
提问于 2019-06-18 21:14:40
回答 2查看 761关注 0票数 1

在PythonAnywhere托管的Django web项目中,我使用Django-Filer进行管理。我已经阅读了安装说明,但是我在访问Filer为每个文件创建的规范urls时遇到了问题。我似乎被引导到一个Filer.urls没有识别的扩展url (非规范部分开始于/Filer.urls/;这是一个正在创建的目录,并将我的文件存储在单独的PythonAnywhere文件目录中)。

我的urls语法有错误吗?我的views.canonical中有错误吗?我不知道为什么插入精确的规范url将我重定向到这个扩展版本的url。

Python: 3.7 Django: 2.2

规范网址:/filer/共享/1560887480/39/

错误/调试屏幕

代码语言:javascript
复制
Page not found (404)
Request Method:     GET
Request URL:    http://www.mywebsite.com/filer/sharing/1560887480/39/filer_public/36/ea/36ea58a8-f59c-41ad-9d1f-00a976603eb1/big1.jpg

Using the URLconf defined in mywebsitesite.urls, Django tried these URL patterns, in this order:

    admin/
    ^filer/ sharing/(?P<uploaded_at>[0-9]+)/(?P<file_id>[0-9]+)/$ [name='canonical']

The current path, filer/sharing/1560887480/39/filer_public/36/ea/36ea58a8-f59c-41ad-9d1f-00a976603eb1/big1.jpg, didn't match any of these.

/mywebsite/.virtualenvs/env/lib/python3.7/site-packages/filer/urls.py:应用程序URLS

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from __future__ import absolute_import

from django.conf.urls import url

from . import settings as filer_settings
from . import views


urlpatterns = [
    url(
        filer_settings.FILER_CANONICAL_URL + r'(?P<uploaded_at>[0-9]+)/(?P<file_id>[0-9]+)/$',  # flake8: noqa
        views.canonical,
        name='canonical'
    ),
]

/mywebsite/.virtualenvs/env/lib/python3.7/site-packages/filer/VIEWS.py应用程序视图:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from django.http import Http404
from django.shortcuts import get_object_or_404, redirect

from .models import File


def canonical(request, uploaded_at, file_id):
    """
    Redirect to the current url of a public file
    """
    filer_file = get_object_or_404(File, pk=file_id, is_public=True)
    if (not filer_file.file or int(uploaded_at) != filer_file.canonical_time):
        raise Http404('No %s matches the given query.' % File._meta.object_name)
    return redirect(filer_file.url)

/home/mywebsite/mywebsite/urls.py基URLS

代码语言:javascript
复制
from django.contrib import admin
from django.urls import include, path
from django.conf.urls import url
from django.views.generic import TemplateView
from quotes.views import Register

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('django.contrib.auth.urls')),
    path('', include('pages.urls')),
    url(r'^filer/', include('filer.urls')),
]

/home/mywebsite/mywebsite/settings.py基本设置:

代码语言:javascript
复制
FILER_CANONICAL_URL = 'sharing/'
EN

回答 2

Stack Overflow用户

发布于 2019-06-24 20:23:34

我能够通过在我的url和设置文件中配置静态和媒体根来使规范url工作,如下所示。

urls.py

代码语言:javascript
复制
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from django.conf.urls import url

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('django.contrib.auth.urls')),
    url(r'^filer/', include('filer.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

代码语言:javascript
复制
MEDIA_ROOT = os.environ.get('FILER_MEDIA_ROOT', os.path.join(BASE_DIR, 'media'))

MEDIA_URL = '/home/mywebsite/media/'
票数 2
EN

Stack Overflow用户

发布于 2021-11-26 00:17:52

我能够通过不包括filer.urls,而是直接在项目urls.py文件中指定url模式来解决这个问题。

Django 3.1.7

django-filer 2.1.2

/myproject/myproject/urls.py

代码语言:javascript
复制
...
from filer import views as filer_views
from .settings import FILER_CANONICAL_URL
...

urlpatterns = [
  url(r'^filer/'+FILER_CANONICAL_URL+r'/(?P<uploaded_at>[0-9]+)/(?P<file_id>[0-9]+)/$',
      filer_views.canonical,
      name='canonical'),
  ...,
]

/myproject/myproject/settings.py

代码语言:javascript
复制
...
FILER_CANONICAL_URL = 'somefolder/'

然而,我仍然不知道额外的空间是从哪里来的--据我所知,文件处理程序urls.py和settings.py看上去还不错。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56657142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档