0
これはかなり簡単なはずですが、私は本当に自分自身でそれを理解するのに苦労しています。Django:formsetに空のフォームを保存しないようにする
私は不動産アプリをやっています。私はユーザーが家の画像をアップロードできるようにする必要があります。各画像はハウスに関連し、各ハウスはユーザーに関連しています。
それは動作しますが、ユーザーがフォームセットで空のフォームを送信すると、存在しないイメージがユーザーとハウスに登録されるため、すべてが破損します。どうすればそれを防ぐことができますか?
相続人は、私の見る:より多くの潜在的な答えのように見えた
def photos_formset(request, *args, **kwargs):
pk = kwargs['pk']
ImovelPhotosModelFormset = modelformset_factory(ImovelPhotos, form=ImovelPhotosForm)
formset = ImovelPhotosModelFormset(
request.POST or None, request.FILES or None,
queryset = Imovel.objects.get(pk=pk).imovelphotos_set.all(),
)
if formset.is_valid():
for form in formset:
if not request.FILES:
break
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.imovel = Imovel.objects.get(pk=pk)
obj.save()
return HttpResponseRedirect('/lares/{pk}/'.format(pk=pk))
context = {
"formset": formset,
}
return render(request, "imovel_photos.html", context)
事はこれをだったが、それは私がしなければ、この何も起こらない、動作しませんでした:
if form.is_valid() and not form.empty_permitted: