2016-10-29 7 views
0

私はPython 2.7、Django 1.9とsorl.thumbnailを使っています。sorl.thumbnail(Django)で写真とサムネイルを削除

元の画像ファイル、データベース内のピクチャエントリ、sorl.thulbnailによって生成されたサムネイル画像、およびデータベースのthumbnail_kvstoreエントリを一度に削除するビューを作成することはできません。ここで

が私の絵のモデルである:

class Picture(models.Model): 
    file = models.ImageField(upload_to="pictures") 
    slug = models.SlugField(max_length=100, blank=True) 
    user = models.ForeignKey(User, null=True, blank=True) 
    exiflnglat = models.PointField(dim=3, geography=True, blank=True, null=True) 
    objects = models.GeoManager() 

    def __str__(self): 
     return self.slug 

    @models.permalink 
    def get_absolute_url(self): 
     return ('upload-new',) 

そしてここでは、私の見解である:

from sorl.thumbnail import delete 

def deletepicnthumbs(request, pk): 
    allpicfromuser = Picture.objects.filter(user=request.user) 
    pictodelete = allpicfromuser.get(id=pk) 
    delete(pictodelete) 
    return redirect(adddetails) 

このビューでは、私が間違っているのは何...何も削除しないのですか?

どうもありがとう

答えて

1

あなたがPictureモデルのインスタンスの代わりに、画像自体を削除するSORLからdeleteメソッドを使用しようとしているようです。

このコードは動作するはずです

from sorl.thumbnail import delete 

def deletepicnthumbs(request, pk): 
    pictodelete = Picture.objects.get_object_or_404(id=pk, user=request.user) 
    # Delete the thumbnails, as well as the original image 
    # If you want to keep the original image, pass ```delete_file=False``` 
    delete(pictodelete.file) 
    # We use Django's method to delete the Picture instance, if needed 
    pictodelete.delete() 
    return redirect(adddetails) 

・ホープ、このことができます、 アデラ

関連する問題