【问题标题】:Uploading an Image through Admin in Django在 Django 中通过管理员上传图像
【发布时间】:2013-02-26 00:19:46
【问题描述】:

我正在尝试通过 Django 管理面板上传图像。我在 Google App Engine 上运行并使用文件传输插件(不确定是否与我遇到的问题有关)。

来自我的 modelys.py:

from django.db import models

# Create your models here.
class CarouselItem (models.Model):
    caption = models.CharField(max_length=200,blank=True)
    order = models.IntegerField()
    carousel_image = models.ImageField(upload_to='uploads/carousel_image/%Y/%m/%d/')
    def __unicode__(self):
        return self.caption

来自 admin.py:

from carousel.models import CarouselItem
from django.contrib import admin
from imperavi.admin import ImperaviAdmin

class carouselAdmin(ImperaviAdmin):
    list_display = ('caption','order')

admin.site.register(CarouselItem, carouselAdmin)   

我得到的错误是“没有名为 Image 的模块”。我没有安装 PIL。我需要安装它才能启用此功能吗?

更新:这是导致错误的回溯:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/admin/carousel/carouselitem/add/

Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.contenttypes',
 'django.contrib.auth',
 'django.contrib.sessions',
 'djangotoolbox',
 'autoload',
 'dbindexer',
 'django.contrib.staticfiles',
 'portfolio',
 'EBoardMembers',
 'Calendar',
 'filetransfers',
 'positions',
 'imperavi',
 'chunks',
 'carousel',
 'djangoappengine']
Installed Middleware:
('autoload.middleware.AutoloadMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/contrib/admin/options.py" in wrapper
  307.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/contrib/admin/sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/utils/decorators.py" in _wrapper
  28.             return bound_func(*args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/utils/decorators.py" in bound_func
  24.                 return func(self, *args2, **kwargs2)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/db/transaction.py" in inner
  217.                 res = func(*args, **kwargs)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/contrib/admin/options.py" in add_view
  864.             if form.is_valid():
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/forms.py" in is_valid
  121.         return self.is_bound and not bool(self.errors)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/forms.py" in _get_errors
  112.             self.full_clean()
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/forms.py" in full_clean
  267.         self._clean_fields()
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/forms.py" in _clean_fields
  282.                     value = field.clean(value, initial)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/fields.py" in clean
  503.         return super(FileField, self).clean(data)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/fields.py" in clean
  163.         value = self.to_python(value)
File "/Users/Zach/Documents/Cornell/Activities/MICC/new_website/MICC_app_engine/django/forms/fields.py" in to_python
  528.             import Image

Exception Type: ImportError at /admin/carousel/carouselitem/add/
Exception Value: No module named Image

【问题讨论】:

  • 您能发布导致该错误的回溯吗?可能是你需要安装 PIL。
  • 是的,这是对图像的要求
  • @SimeonVisser 我添加了回溯 cmets

标签: python django django-admin django-models


【解决方案1】:

您需要安装 PIL 或同等产品。在 python 3.x 的情况下枕头。如果您在安装时遇到问题,请告诉我,我有一些并且很容易修复,您只需将路径添加到您的 python.h 。也许现在已经解决了... 在 models.py 中无需添加任何内容

Link

【讨论】:

    【解决方案2】:

    是的,您需要安装 Pil。但在此之前,您需要将 jpeglib 安装到您的服务器(没有此 PIL 无法处理 jpeg 文件)

    总之,你可以包括

    from django.db.models import ImageField
    

    在你的 models.py 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多