Как мои пользователи могут удалить файл, который они загрузили, используя последнюю версию Django?
Я не получаю сообщения об ошибке - но когда в моем шаблоне нажимается кнопка Delete, ничего не происходит. Кто-нибудь видит, чего не хватает в моем коде ниже?
settings.py
MEDIA_URL = '/home/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR),
'home/')
models.py
class Roll(models.Model):
csv = models.FileField(default="", upload_to='home/')
def delete(self, *args, **kwargs):
self.csv.delete()
super().delete(*args, **kwargs)
views.py
class DeleteRollView(LoginRequiredMixin, DeleteView):
model = Roll
form_class = RollForm
template_name = 'users/delete_roll.html'
@staticmethod
def delete_roll(self, request, pk):
if request.method == 'POST':
roll = Roll.objects.get(pk=pk)
roll.delete()
return redirect('users:list_roll')
delete_roll.html
<input type="submit" value="Delete"/>
Пересмотренный метод CBV, согласно предложению Som-1 :
def post(self, request, *args, **kwargs):
if request.method == 'POST':
roll =
Roll.objects.get(id=self.kwargs['pk'])
roll.delete()
return redirect('users:list_roll')