Note that there are some explanatory texts on larger screens.

plurals
  1. PODjango Error (13, 'Permission denied')
    primarykey
    data
    text
    <p>I'm been working on this Photo Organizer and Sharing App Part I at <a href="http://lightbird.net/dbe/photo.html" rel="noreferrer">http://lightbird.net/dbe/photo.html</a>. I'm trying to generate a thumbnail and when I do . I get this error.</p> <p>I have Windows Vista.</p> <pre><code> IOError at /admin/photo/image/add/ (13, 'Permission denied') Request Method: POST Request URL: http://127.0.0.1:8000/admin/photo/image/add/ Django Version: 1.4.3 Exception Type: IOError Exception Value: (13, 'Permission denied') Exception Location:C:\Python26\lib\site-packages\PIL\Image.py in save, line 1399 Python Executable:C:\Python26\python.exe Python Version: 2.6.0 Python Path: ['C:\\djcode\\mysite', 'C:\\Python26\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'C:\\Python26\\lib\\site-packages\\PIL'] Server time: Sun, 10 Feb 2013 23:49:34 +1100 </code></pre> <p>My <code>models.py</code> is </p> <pre><code>from django.db import models from django.contrib.auth.models import User from django.contrib import admin from string import join from django.core.files import File from os.path import join as pjoin from tempfile import * import os from PIL import Image as PImage from mysite.settings import MEDIA_ROOT class Album(models.Model): title = models.CharField(max_length=60) public = models.BooleanField(default=False) def __unicode__(self): return self.title class Tag(models.Model): tag = models.CharField(max_length=50) def __unicode__(self): return self.tag class Image(models.Model): title = models.CharField(max_length=60, blank=True, null=True) image = models.FileField(upload_to="images/") tags = models.ManyToManyField(Tag, blank=True) albums = models.ManyToManyField(Album, blank=True) created = models.DateTimeField(auto_now_add=True) rating = models.IntegerField(default=50) width = models.IntegerField(blank=True, null=True) height = models.IntegerField(blank=True, null=True) user = models.ForeignKey(User, null=True, blank=True) thumbnail2 = models.ImageField(upload_to="images/", blank=True, null=True) def __unicode__(self): return self.image.name def save(self, *args, **kwargs): """Save image dimensions.""" super(Image, self).save(*args, **kwargs) im = PImage.open(pjoin(MEDIA_ROOT, self.image.name)) self.width, self.height = im.size # large thumbnail fn, ext = os.path.splitext(self.image.name) im.thumbnail((128,128), PImage.ANTIALIAS) thumb_fn = fn + "-thumb2" + ext tf2 = NamedTemporaryFile() im.save(tf2.name, "JPEG") self.thumbnail2.save(thumb_fn, File(open(tf2.name)), save=False) tf2.close() # small thumbnail im.thumbnail((40,40), PImage.ANTIALIAS) thumb_fn = fn + "-thumb" + ext tf = NamedTemporaryFile() im.save(tf.name, "JPEG") self.thumbnail.save(thumb_fn, File(open(tf.name)), save=False) tf.close() super(Image, self).save(*args, ** kwargs) def size(self): """Image size.""" return "%s x %s" % (self.width, self.height) def __unicode__(self): return self.image.name def tags_(self): lst = [x[1] for x in self.tags.values_list()] return str(join(lst, ', ')) def albums_(self): lst = [x[1] for x in self.albums.values_list()] return str(join(lst, ', ')) def thumbnail(self): return """&lt;a href="/media/%s"&gt;&lt;img border="0" alt="" src="/media/%s" height="40" /&gt;&lt;/a&gt;""" % ( (self.image.name, self.image.name)) thumbnail.allow_tags = True class AlbumAdmin(admin.ModelAdmin): search_fields = ["title"] list_display = ["title"] class TagAdmin(admin.ModelAdmin): list_display = ["tag"] class ImageAdmin(admin.ModelAdmin): search_fields = ["title"] list_display = ["__unicode__", "title", "user", "rating", "size", "tags_", "albums_","thumbnail", "created"] list_filter = ["tags", "albums"] def save_model(self, request, obj, form, change): obj.user = request.user obj.save() </code></pre> <p>The problem is here:</p> <pre><code>from django.core.files import File from os.path import join as pjoin from tempfile import * class Image(models.Model): # ... thumbnail2 = models.ImageField(upload_to="images/", blank=True, null=True) def save(self, *args, **kwargs): """Save image dimensions.""" super(Image, self).save(*args, **kwargs) im = PImage.open(pjoin(MEDIA_ROOT, self.image.name)) self.width, self.height = im.size # large thumbnail fn, ext = os.path.splitext(self.image.name) im.thumbnail((128,128), PImage.ANTIALIAS) thumb_fn = fn + "-thumb2" + ext tf2 = NamedTemporaryFile() im.save(tf2.name, "JPEG") self.thumbnail2.save(thumb_fn, File(open(tf2.name)), save=False) tf2.close() # small thumbnail im.thumbnail((40,40), PImage.ANTIALIAS) thumb_fn = fn + "-thumb" + ext tf = NamedTemporaryFile() im.save(tf.name, "JPEG") self.thumbnail.save(thumb_fn, File(open(tf.name)), save=False) tf.close() super(Image, self).save(*args, ** kwargs) </code></pre> <p>How do I fix this error?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload