작은 프로젝트에 문제가 있습니다. 기본적으로 내 사이트에는 사용자 계정이 있으며, 각 사이트는 이미지를 서버에 업로드 할 수 있습니다 (갤러리처럼 말하십시오). 분명히 모든 이미지가 단일 폴더에 나타나기를 원하지 않기 때문에 각 사용자의 이미지가 각 디렉토리에만 표시되도록 구현했습니다.Django 빠른 파일 삭제
사용자가 업로드 할 수있는 동안 문제는 이러한 파일을 삭제할 수 있도록 만드는 방법을 모르겠다는 것입니다.
테이블 "ImageDoc"에는 파일 이름을 저장하는 "imgfile"열이 있습니다.
view.py 위의 코드는 작동
def image_galleria(request):
LOCATION = request.user.username + "/"
if request.method == 'POST':
form = ImgDocForm(request.POST, request.FILES)
if form.is_valid():
origin_form = form.cleaned_data["user_file"]
origin_name = origin_form.name
new_name = origin_name.split('.')[0] + ".jpg"
original_file = os.path.join(settings.MEDIA_ROOT+LOCATION, new_name)
original_name = ImageDoc(user_id=user_details.id, imgfile=new_name)
original_name.save()
은, 사용자의 각각의 디렉토리에 저장합니다. 그러나 ...
view.py
@login_required(login_url='sign_in')
def delete_image(request, image_id):
imagex = ImageDoc.objects.get(id=image_id)
LOCATION = request.user.username + "/"
imagex.imgfile.delete(LOCATION)
return HttpResponse("Yes! Deleted file!")
나는 "() .delete", 어떤이 작동하지 않는 다양한 콤보를 시도했다. 내가 뭘 잘못하고 있는거야? 그냥 file
객체를 얻고 삭제 파일을 삭제 ... 귀하의 경우에는 원하는 경우
응답 해 주셔서 감사합니다. 그래도 작동하지 않습니다. 이것은 작동합니다. 이것은 작동합니다 : 'imagex.imgfile.delete()' 하지만 내 문제는 삭제 기능이 사용자의 디렉토리 (일반 MEDIA 디렉토리) 내의 파일을 삭제하지 않는다는 것입니다. – Bob