먼저 코드를 입력하십시오. ModelForm (IM1 및 IM2가 models.ImageField입니다) :ImageFields가있는 ModelForm. 유효성 검사 오류 인 경우 올바르게 지워지지 않음
이class TestForm(forms.ModelForm):
checkme = forms.BooleanField(required=True)
class Meta:
model = UserProfile
fields = ('im1', 'im2')
이보기 :
이def test(request):
profile = request.user.get_profile()
form = TestForm(instance=profile)
if request.method == "POST":
form = TestForm(request.POST, request.FILES, instance=profile)
if form.is_valid():
form.save()
return render(request, 'test.html', {'form':form})
템플릿 :
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="submit" />
</form>
</body>
</html>
문제점 :
이 IM1가 포함되어있는 경우 유효한 이미지를 입력하고 옆에있는 선택란을 선택하지만 checkme를 확인하지 않고 제출하면 fo rm은 checkme가 필요하다는 오류 메시지와 함께 다시 나타납니다. 오류와 함께 양식이 반환되지만 im1이 지워진 것처럼 나타납니다. 실제로 im1이 파일을 다시 표시하고 선택란을 지우는 형식으로 다시로드하기 때문에 실제로는 없습니다.
내 질문은 어떻게 해결할 수 있습니까? 내가하고있는 일이거나 장고와 관련이있는 것이지?
도움을 주셔서 감사합니다. 이 테스트는 단순한 테스트 케이스이므로 사용자가 동일한 작업을 두 번 반복하도록합니다. 실제 사례에서 이미지는 프로필 사진이며 사용자는 사진이 사이트에서 공개 될 것임을 인정하는 상자를 선택해야합니다. 동일한 결과를 산출하는 또 다른 시나리오는 체크 박스가없는 경우이지만 im1에 대해 명확하고 im2에 비 이미지를 제공하는 것입니다. im2 오류 및 im1이 삭제 된 것처럼 보이는 양식이 반환됩니다.그것이 내가 원하지 않는 것입니다. im1 또는 2는 보이지 않는 경우 삭제됩니다. – joshcartme
나는 당신이 지금 무슨 말을하고 있는지 이해할 것 같습니다. 당신은 당신이 요청의 내용을 볼 수 있다는 것을 기억해야합니다 .POST와 요청. 파일은 사전을 말합니다. "지우기"가 선택되어 있는지 확인할 수 있습니다. 수동으로 이미지를 삭제할 수 있으므로 양식 오류가 발생하여 페이지를 새로 고치면 다시 표시되는 대신 영원히 사라집니다. –