У нас иметься модель, класс в которой имеет поле ImageField которое абсолютно нормально загружает на сервер картинки. Проблема что при удалении нашей записи из базы через checkbox в списке записей, из базы всё удалятся кроме картинки на сервере. Необходимо удалить картинку вместе с записью.
Поискав в интернете нашел очень и очень много способов, но как-то не могу понять какой лучше, и как реализовать это!
На всякий случай модель
#models.py
from django.db import models
from django.contrib import admin
class Freezer(models.Model):
name = models.CharField(max_length = 250)
picture = models.ImageField(upload_to='photos')
descriprion_ru = models.TextField()
descriprion_en = models.TextField()
price = models.TextField(max_length = 15)
timestamp = models.DateField()
def delete(self, using=None):
try:
obj = Freezer.objects.get(pk=self.pk)
obj.picture.delete()
except (Freezer.DoesNotExist, ValueError):
pass
super(Freezer, self).delete()
class Contacts(models.Model):
mobile_number = models.CharField(max_length = 10)
office_number = models.CharField(max_length = 9)
e_mail = models.EmailField()
skype = models.CharField(max_length = 30)
adress = models.CharField(max_length = 50)
class FreezerAdmin(admin.ModelAdmin):
list_display = ('name','price','timestamp')
class ContactAdmin(admin.ModelAdmin):
list_display = ('mobile_number','office_number','e_mail','skype','adress')
admin.site.register(Freezer, FreezerAdmin)
admin.site.register(Contacts, ContactAdmin)
Хотелось бы стандартными методами, без дополнительных библиотек.
Удаление получается если только заходить в редактирование записи и там удалять.
Нужно как-то изменить поведение админки чтобы можно было удалить массой!
Пробовал различными способами переопределения методов удаления но не получается!