Django django-adminfiles

Django django-adminfiles

我正在使用 Django 创建博客,我需要在 post 上插入图像。据我所知,最好的包装是 django-adminfiles

安装指南很简单,但我不明白第3步(因为我的英语水平不好:S):

Make the contents of the adminfiles/static/adminfiles directory available at STATIC_URL/adminfiles. This can be done by through your webserver configuration, via an app such as django.contrib.staticfiles, or by copying the files or making a symlink.

我有 运行 collecstatic,将 adminfiles/static/adminfiles 的文件复制到我的静态目录,但似乎没有任何效果。当我写 post 时,它应该像 video 中那样显示,但图像缩略图和 "All uploads images"、"Upload"、"Refresh"... 不会出现。 我是 Django 的新手,这个愚蠢的问题让我有点不知所措。 ¿有人知道我必须在这里做什么吗?

我的环境

  • OS: CentOS7_x86_64
  • Python: 2.7.5 (必须是开发版)
  • Django: 1.8.1

步骤

  1. 安装

    • 'adminfiles' : pip install django-adminfiles==1.0.1

    • 'sorl-thumbnail' : pip install sorl-thumbnail==12.2

    • 'pillow' 的先决条件: yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel -y

    • 'pillow' : pip install pillow==2.8.1

  2. 使用管理文件

    我创建了一个名为 'demo' 的 django 项目,它只有一个应用程序 'trial'。

         demo
           |
           |------ demo
           |        |---- __init__.py
           |        |---- settings.py
           |        |---- urls.py
           |        |---- wsgi.py
           |
           |------ manage.py
           |------ trial
                     |---- \aa___init__.py
                     |---- admin.py
                     |---- models.py
                     |---- tests.py
                     |---- views.py
        
    要在 'demo' 项目中使用 adminfiles,我们必须执行以下操作:

    • 将 'adminfiles'、'sorl.thumbnail' 添加到 demo/settings.py 文件的 INSTALLED_APPS 元组。

      INSTALLED_APPS = (
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          'adminfiles',
          'sorl.thumbnail',
          'trial',
      )
      
    • 将 adminfiles url 添加到 demo/urls.py 文件的 urlatterns 列表中。

      urlpatterns = [
          url(r'^admin/', include(admin.site.urls)),
          url(r'^adminfiles/', include('adminfiles.urls')),
      ]
      
    • 修改trial/admin.py文件的admin。
      (注:Article是在trial/models.py中定义的模型,它有一个名为'text'的TextField字段)

      from django.contrib import admin
      from models import Article
      
      from adminfiles.admin import FilePickerAdmin
      
      admin.site.register(Article)
      
      class ExtraAdmin(FilePickerAdmin):
         adminfiles_fields = ('text',)
      
      admin.site.register(Article, ExtraAdmin)
      
    • python manage.py 迁移

    • 设置MEDIA_URL和MEDIA_ROOT.

      demo/settings.py :

      MEDIA_URL = '/media/'
      MEDIA_ROOT = '/data/media/'
      

      demo/urls.py :

      from django.conf import settings
      from django.conf.urls.static import static
      
      urlpatterns = [
        url(r'^admin/', include(admin.site.urls)),
        url(r'^adminfiles/', include('adminfiles.urls')),
      ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
      

      经过以上设置后,上传的文件会存放在'/data/media/adminfiles/'目录下