请帮忙!我正在使用Django 3,并且有一个基本博客,其中每个条目都有标题,描述和图像。在Django管理员中,我可以删除每个博客文章,但是,当我在Atom中查看媒体文件时,所有图像仍然存在,因此必须手动删除它们。
在管理员中删除它们时,如何使它们自动删除?
模型
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
image = models.ImageField(upload_to='images/', default='images/road.jpg')
last_modified = models.DateField(auto_now=True)
Views.py
from django.shortcuts import render
from .models import Blog
def home (request):
blogs = Blog.objects.all()
return render (request,'blog/home.html', {'blogs':blogs})
您可以这样使用:
blog = Blog.objects.get(pk=1)
if blog.image:
if os.path.isfile(blog.image.path):
os.remove(blog.image.path)
或者您可以使用信号灯:
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
@receiver(pre_delete, sender=Blog)
def mymodel_delete(sender, instance, **kwargs):
# Pass false so FileField doesn't save the model.
instance.file.delete(False)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句