2013-02-26 122 views
0

我想通過Django管理面板上傳圖片。我在Google App Engine上運行並使用filetransfers插件(不確定是否與我遇到的問題相關)。在Django通過管理上傳圖片

從我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) 

我正的錯誤是 「無模塊命名的圖像」。我沒有安裝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 
+0

你能後,讓該錯誤的追蹤?這可能是你需要安裝PIL。 – 2013-02-26 00:42:04

+0

是的,這是圖像的要求 – catherine 2013-02-26 00:45:41

+0

@SimeonVisser我添加了追溯評論 – zpesk 2013-02-26 00:46:07

回答

0

是的,你需要安裝弼。但在此之前,你需要安裝jpeglib到你的服務器(沒有這個PIL不能與JPEG文件工作)

Alterall,您可以包括

from django.db.models import ImageField 

在你的models.py

1

您需要安裝PIL或同等產品。蟒蛇3.x的情況下。如果你在安裝時遇到了麻煩,我已經得到了一些,並且很容易修復,你只需要將路徑添加到你的python.h。也許這是現在固定... 沒有在models.py添加

Link