我需要使用其模型表单更新对象,并按照django doc中的描述传递实例。但是在保存表单时遇到这些问题:
title
并提交表单时,它会给我一个错误,即image
字段是必需的,而且图片字段变为空白。但是,当更改image
时,标题字段不为空,并且不会出现任何错误。snap
对象,而不是更新instance
对象。在视图中,我尝试同时使用obj.save()
和obj.update()
,但没有任何帮助。请帮我解决这个问题。我将非常感谢您的帮助。谢谢。
形式:
class SnapForm(forms.ModelForm):
class Meta:
model = Snap
fields = ['title', 'description', 'image', 'upload_date']
视图:
def admin_snap_settings(request, snap_id):
if not request.user.is_admin:
return render(request, 'admin_login_invalid.html')
else:
instance = Snap.objects.get(id=snap_id)
if request.user == instance.user:
if request.method == "POST":
form = SnapForm(request.POST, request.FILES, instance=instance)
if form.is_valid():
form.save()
return HttpResponseRedirect('/custom123user/admin/snapview')
else:
form = SnapForm(instance=instance)
return render(request, 'admin_snap_settings.html', {
'form': form
})
else:
return render(request, 'wrong_user.html')
答案 0 :(得分:0)
经过几个小时的调试和抓头......我意识到表单的action
的网址指向admin_snap_add()
视图,而不是admin_snap_settings()
视图。
希望这能帮助像我这样愚蠢的人。如果你们想让我删除这个问题,请通知我。谢谢你的时间。