Этот бэкэнд не поддерживает абсолютные пути. Django чтобы удалить файл в gd_storage - PullRequest
0 голосов
/ 02 мая 2020

Извините, я новичок ie на платформе Django, теперь я пытался удалить файл с Google Drive, и произошла ошибка. Я действительно не знаю значения этого бэкэнда, не поддерживающего абсолютные пути. Вот мой код, надеюсь, кто-нибудь может помочь.

модель

class Document(models.Model):
    doc = EncryptedFileField(upload_to='documents/', 
    storage=gd_storage, 
    verbose_name='Document')
    uploaded_at = models.DateTimeField(auto_now_add=True, 
    verbose_name='Uploaded at')
    notes = models.CharField(max_length=511, blank=True, 
       verbose_name='Notes')
    deg_type = models.CharField(max_length=63, choices=DEGREE_TYPE,
                            default='none', verbose_name='Degree')
    class Meta:
        abstract = True


class Deg_Plan_Doc(Document):
    doc_type = models.CharField(max_length=255, 
                          choices=DEGREE_PLAN_DOC_TYPE,
                            default='not_sel', verbose_name='Document Type')
    stu = models.ForeignKey(Student, related_name='deg_plan_docs',
                        on_delete=models.CASCADE, verbose_name='Student')

    class Meta:
        verbose_name = 'Degree Plan'

просмотр

@conditional_decorator(login_required(login_url='/login/'), not settings.DEBUG)
def doc_upload(request, id):
    student = Student.objects.get(id = id)
    if request.method == 'POST':
        form = create_doc_form(Deg_Plan_Doc)(request.POST, request.FILES)
        if form.is_valid():
            doc = form.save(commit=False)
            doc.stu = student
            doc.save()
            return redirect('doc_upload', id=id)
    else:
        student = Student.objects.get(id = id)
        form = create_doc_form(Deg_Plan_Doc)
    return render(request, 'form_upload.html', {
        'form': form,
        'student': student,
})

@conditional_decorator(login_required(login_url='/login/'), not settings.DEBUG)
    def doc_remove(request,id):
        doc = Deg_Plan_Doc.objects.get(id = id)
        stu_id = doc.stu.id
        doc.delete()
        return redirect('doc_upload',id=stu_id)

Запрос URL: https://8000-dot-5387418-dot-devshell.appspot.com/students/doc_remove/2/ Тип исключения : NotImplementedError Значение исключения:
Этот бэкэнд не поддерживает абсолютные пути.

...